为什么 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
没有用,它可能非常有用,但它的使用不是 必需的。
我想知道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
没有用,它可能非常有用,但它的使用不是 必需的。