在Meteor中,如何查找哪个会话变量触发模板重新运行

时间:2014-06-08 18:24:03

标签: meteor

这是关于设计流星应用程序或调试流星应用程序的一般性问题。

当我编写meteor应用程序时,我通常会更新会话变量值以触发重新运行模板帮助程序功能和/或重新呈现模板。所以我的应用程序有很多不同的会话变量。

有时候我发现辅助函数会多次重新运行,但我想不出为什么它会重复运行这么多次。它必须是一些会话变量得到更新并导致重新运行。有没有办法找出导致它的会话变量?

一般问题是:在反应式设计中,当我看到模板被重新渲染时,如何找到重新渲染的原因?

1 个答案:

答案 0 :(得分:1)

你可以使用Deps.autorun快速找出它是什么,如果你正在寻找一个快速的粗略方法来调试

删除代码

Deps.autorun(function() {
   Session.get("something");
   console.log("Session something has changed");
});

Deps.autorun(function() {
   Meteor.user()
   console.log("Meteor user has changed");
});

您可以在客户端放置这样的代码块,以查看哪些代码正在发生变化。每一个都会运行一次,最初,然后每次运行后,其中的反应变量会发生变化。

您必须为模板中使用的每个变量执行此操作,这样可以帮助您找出哪个变化​​,每个Deps.autorun块只有在其中的变量发生变化时才会独立运行。