javascript - meteor :ReactiveVar 与 ReactiveDict

标签 javascript meteor session-variables

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

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

最佳答案

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

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

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

推荐阅读:ReactiveDict source code

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

相关文章:

javascript - 如何在 React 中控制音频/视频 DOM 元素

javascript - 由于 XML 无效,jqGrid 停留在正在加载...

asp.net - 使用带有 ASP.NET 的 log4net 来跟踪 session 变量

php - session 变量在不同页面上显示为空

javascript - 在 Javascript 中创建混合对象数组

javascript - 如何有效地散列图像以在浏览器中进行索引搜索?

performance - 为什么 Meteor 需要这么长时间才能在 Heroku 上加载我的数据?

javascript - Meteor 有全局渲染函数吗?

meteor - 如何让 Meteor 忽略文件?

java - 使用 ThreadLocal 绕过 Servlet 线程不安全?