vue.js - 全局实例属性更改时 Vue 不更新
问题描述
我的代码中有以下代码app.js
(在导入 Vue 之后和之前new Vue()
):
Vue.prototype.$globalArray = [];
在我的一个 Vue 组件中,我有以下内容:
<span v-for="item in $globalArray">{{ item }}</span>
那么问题是,当我$vm0.$globalArray.push('some text');
在我的 Chrome 开发工具中(因此使用 Vue 扩展名$vm0
)进行操作时,什么也没有发生。但是,当我更改app.js
为
Vue.prototype.$globalArray = 'some other text';
它实际上确实显示了“其他一些文本”,因此看起来它只呈现初始值但不更新。当我在组件安装后设置几秒钟的超时时间然后在$globalArray
.
有人可以告诉我是我做错了什么还是不支持?
提前致谢
解决方案
您只定义了一个全局 vue 实例,默认情况下它不是反应式的 - https://vuejs.org/v2/cookbook/adding-instance-properties.html
为了使其具有反应性,您可以遵循 Vue.observable 例如 - https://vuejs.org/v2/api/#Vue-observable
Vue.prototype.$global = Vue.observable({array: []})