我有数据,在 VueJS 应用程序初始化之前在页面上加载过一次,并且此数据不会一直更改,而 html 页面不会重新加载(经典的 CGI 应用程序,不是 SPA)。数据示例:
const nonReactiveObjectWithSomeNestedData = {
a: 'a',
b: {
bb: 'bb',
cc: { ccc: 'ccc' },
dd: ['dd1', 'dd2']
}
}
我在几个 vue 组件中使用这些数据。将这些数据存储在 Vuex 命名空间模块中并使用 Vuex-getters 为不同的 vue-components 包装相同的功能会很方便。有什么方法可以不将此数据存储在 vuex state
中(不需要 react 性)但能够从 vuex 模块的 getter 访问?
PS. 目前我正在使用存储非 react 性数据 inside vue-instance方法,但现在还不够,我需要对数据进行更多全局访问(来自两个独立的根组件)。
最佳答案
在将对象添加到存储之前卡住对象:
Object.freeze(nonReactiveObjectWithSomeNestedData )
Vue 不会使卡住的对象具有反应性。
注意:您应该在对象进入 Vuex 突变/ Action 之前卡住它:
this.$store.dispatch('moduleName/setNonReactiveObject',
Object.freeze(nonReactiveObjectWithSomeNestedData));
在突变函数内部,有效载荷参数已经是 react 性的。
关于javascript - 如何在 Vuex 中存储非 react 性数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47452401/