所以,我可能会遗漏一些东西,但是每个人都说在存储实例值时ReactiveDict比Session更好。但是,哈希怎么样?似乎reactiveDict不能隐藏数据,比如存储在Session中?我可以使用reactiveDict通过控制台从应用程序获取数据...所以,如果我想隐藏这个实例数据,那么使用Session是否有意义?
思想?
appState = new ReactiveDict('appState')...;
Session.set(key, value)...
答案 0 :(得分:3)
如果您可以在此处查看会话包的源代码https://github.com/meteor/meteor/blob/devel/packages/session/session.js
Session = new ReactiveDict('session');
Session只不过是ReactiveDict。
人们说ReactiveDict比会话更好的原因是,Session是全局的,您可以转到控制台并输入Session.keys
来获取所有值。
ReactiveDict
可以选择不使其全球化
如果您想在单个文件中使用ReactiveDict
,可以使用如下所示
const appState = new ReactiveDict('appState')
.
.
.
appState.set('key', 'value');
.
.
.
appState.get('key');
此处appState
不是全球性的。
如果要在不同文件中使用相同的文件,可以使用下面的导入和导出
set.js
------
const appState = new ReactiveDict('appState')
appState.set('key', 'value');
.
.
.
export default appState
然后
get.js
------
import appState from './set.js';
appState.get('key'); //result will be value'
因此,反对意见的优势在于会话是全局的,因为反应可能不是全局的。