我想在vue中存储对象,它应该可用于整个实例而不是被动的 . 通常(有反应)我会像这样使用'数据':
new Vue({ data: myObject })
但事实上myObject不需要改变所以我认为让它反应是坏的 . 有没有办法做到这一点?
您可以使用Vue实例属性 .
您可能希望在许多组件中使用数据/实用程序,但您不希望污染全局范围 . 在这些情况下,您可以通过在原型上定义它们使它们可用于每个Vue实例:
Vue.prototype.$appName = 'My App'
现在,即使在创建之前,所有Vue实例都可以使用$ appName . 如果我们运行:
new Vue({ beforeCreate: function () { console.log(this.$appName) } })
参考:Link
Or
您可以将Vuex状态用于该数据属性,并仅在您想要更改值时定义突变 .
如果您声明并且没有提供任何突变以使其保持只读状态 .
例如...
const store = new Vuex.Store({ state: myObject }) // assuming you've added Vue.use(Vuex) if using a module system new Vue({ // el, data, etc store })
然后您的Vue实例或组件可以访问
this.$store.state.somePropertyOfMyObject
2 回答
您可以使用Vue实例属性 .
现在,即使在创建之前,所有Vue实例都可以使用$ appName . 如果我们运行:
参考:Link
Or
您可以将Vuex状态用于该数据属性,并仅在您想要更改值时定义突变 .
如果您声明并且没有提供任何突变以使其保持只读状态 .
例如...
然后您的Vue实例或组件可以访问