我知道使用 ReactiveVar 和 Session 变量之间的区别在基本层面上是局部变量与全局变量的问题。 ReactiveDict 就像一个本地的 Session 对象。

但是,如果您已经在使用 ReactiveVar,为什么还要使用 ReactiveDict 呢?与 ReactiveVar 相比,ReactiveDict 似乎没有任何优势

最佳答案

以下是 ReactiveDict (RD) 和 ReactiveVar (RV) 之间的主要区别:

  • 顾名思义,RD 提供类似字典的语义:set 采用键/值对,并且具有 deleteclear 方法。最重要的是,它可以让您将 react 性数据聚集到一个变量中。坦率地说,这在大多数用例中并不是那么有趣,但请继续阅读。
  • RD 有一个 all 方法,该方法返回所有键/值对并注册对每个键/值对的 react 依赖。主要的好处是,如果您有一组相关的 react 数据,您可以在 字典的任何 部分发生更改时触发 autorun。要使用一组 RV 执行此操作,您需要对每个 RV 调用 get
  • 如果您将名称传递给 RD 构造函数,它将在热代码推送中存活下来。其实Session其实只是一个RD。

  • 在实践中,我发现了一些 RD 用例,但在大多数情况下,您可能会选择 RV。

    推荐阅读:ReactiveDict source code

    关于javascript - meteor :ReactiveVar 与 ReactiveDict,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33510951/

    10-10 05:34