这是关于设计流星应用程序或调试流星应用程序的一般性问题。
当我编写meteor应用程序时,我通常会更新会话变量值以触发重新运行模板帮助程序功能和/或重新呈现模板。所以我的应用程序有很多不同的会话变量。
有时候我发现辅助函数会多次重新运行,但我想不出为什么它会重复运行这么多次。它必须是一些会话变量得到更新并导致重新运行。有没有办法找出导致它的会话变量?
一般问题是:在反应式设计中,当我看到模板被重新渲染时,如何找到重新渲染的原因?
答案 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块只有在其中的变量发生变化时才会独立运行。