我有数据,在 VueJS 应用程序初始化之前加载到页面上一次,并且该数据不会一直更改,而 html 页面不会重新加载(经典 CGI 应用程序,而不是 SPA)。数据示例:
const nonReactiveObjectWithSomeNestedData = {
a: 'a',
b: {
bb: 'bb',
cc: { ccc: 'ccc' },
dd: ['dd1', 'dd2']
}
}
我在一些 vue 组件中使用这些数据。将这些数据存储在 Vuex 命名空间模块中并使用 Vuex-getters 为不同的 vue 组件包装相同的功能会很方便。有什么办法可以不在vuex内部存储这些数据state
(不需要反应性)但是能够从 vuex-module 的 getter 访问?
PS.目前我正在使用存储非反应性数据vue 实例内部 https://github.com/vuejs/vue/issues/1988#issuecomment-163013818方法,但现在还不够,我需要对数据进行更多的全局访问(来自两个独立的根组件)。
在将对象添加到存储之前先冻结该对象:
Object.freeze(nonReactiveObjectWithSomeNestedData )
Vue 不会使冻结的对象具有反应性。
Note:你应该在对象进入 Vuex 突变/操作之前冻结它:
this.$store.dispatch('moduleName/setNonReactiveObject',
Object.freeze(nonReactiveObjectWithSomeNestedData));
在突变函数内部,有效负载参数将已经是反应性的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)