Meteor可以处理嵌套的依赖项吗?

时间:2013-03-31 19:40:21

标签: javascript meteor

如果我的Meteor自动运行功能所依赖的光标本身是依赖的,那么每当最内层依赖关系改变时,Me Meteor会创建并保存一个新的Computation吗?

如果一个自动运行函数在另一个函数上调用Deps.autorun怎么办?

Session.set('fooVal', 33);
myComputation = Deps.autorun(function() { 
  if (typeof(myComputation) !== 'undefined')
    myComputation.stop(); // Is this needed to prevent Computation accumulation?
  var foos = BarCollection.find({foo:Session.get('fooVal')}; 
  /* Do stuff with foos */
});
Session.set('fooVal', 33);
Session.set('fooVal', 34);
Session.set('fooVal', 35);

1 个答案:

答案 0 :(得分:0)

Meteor可以将反应数据用作Collection查询中的键或值。请仔细阅读文档的Reactivity部分。

自动运行功能可以嵌套而不会发生内存泄漏。如果内部自动运行块无效,则仅重新运行内部块。如果外部自动运行块无效,则重新运行两个自动运行块。

重要的是要理解:

  • Deps.autorun创建并返回一个Computation对象。
  • Computation对象保持跟踪函数所依赖的所有被动数据源。
  • 当任何一个被动数据源发生变化时,将重新运行整个功能。