Meteor: ReactiveVar与ReactiveDict的区别

3
我知道使用ReactiveVar和Session变量的区别,在基本层面上是本地与全局变量的区别。ReactiveDict就像一个本地的Session对象。
但是如果你已经使用了ReactiveVar,为什么还要使用ReactiveDict呢?ReactiveDict似乎没有比ReactiveVar更有优势。
2个回答

9
以下是ReactiveDict(RD)和ReactiveVar(RV)之间的主要区别:
  1. 顾名思义,RD提供类似字典的语义: set接受键/值对,并且有deleteclear方法。底线是它让你将反应性数据聚合到一个变量中。老实说,在大多数用例中,这并不是很有趣,但请继续阅读。
  2. RD有一个all方法,返回所有键/值对,并在每个键上注册反应性依赖关系。主要好处是,如果您有一组相关的反应性数据,您可以在字典的任何部分更改时触发autorun。要使用一组RV来实现这一点,您需要在每个RV上调用get
  3. 如果将名称传递给RD构造函数,则它将在热代码推送后保留。实际上,Session实际上只是一个RD。
实际上,我已经发现了一些RD用例,但在大多数情况下,您可能会选择RV。
推荐阅读:ReactiveDict源代码

0

"... 用于与追踪器一起使用的通用响应式数据类型。"

"如果您为其构造函数提供名称,则其内容将在热代码推送客户端代码更新期间保存。"

来源:https://atmospherejs.com/meteor/reactive-dict


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接