为什么 Meteor 的动态模板需要会话变量?

Why the Dynamic Templates of Meteor need session variables?

我想知道Meteor 的动态模板是如何工作的。我已经阅读了几篇文章、问题和文档。知道如何使用但不明白它是如何工作的。为什么需要可变会话才能工作?谢谢!

Session 基本上就是 "Which scope am I going to pollute again to store this data?".

的答案

它只是一个命名空间。你把数据放进去。你几乎可以通过定义一个全局对象来做同样的事情,除了存储在 Session 中的每个数据都是 Reactive-Var, meaning that when this data changes, all reactive computations are invalidated and re-ran; and the template helpers 恰好是反应性计算!

所以当你看到任何使用 Session 的例子时,只是为了保持代码清晰,避免使用像 var reactiveText = new ReactiveVar();.

这样的东西

它稍微超出了你的问题范围,但我对训练的建议是尝试放弃你在示例中看到的一些 Session 东西,并尝试用局部范围的替换它们反应变量,自己尝试一下。也许用 Tracker.autorun.

做一些事情

您根本不需要 Session 来构建响应式应用程序。具有数据源的模板(mongoDB 查询 return 游标)就足够了。

这并不意味着 Session 没有用,它可能非常有用,但它的使用不是 必需的