全局实例属性更改时,Vue不会更新

时间:2019-11-12 21:33:02

标签: vue.js

我的app.js中有以下代码(在导入Vue之后和new Vue()之前):

Vue.prototype.$globalArray = [];

在我的Vue组件之一中,我有以下内容:

<span v-for="item in $globalArray">{{ item }}</span>

然后的问题是,当我在Chrome开发工具中使用$vm0.$globalArray.push('some text');(具有Vue扩展名,因此$vm0)时,什么也没发生。 但是,当我将app.js更改为

Vue.prototype.$globalArray = 'some other text';

它实际上会显示“其他一些文本”,因此看起来它仅呈现初始值,而不更新。当我在组件安装后设置几秒钟的超时时间,然后在$globalArray中插入内容时,情况也是如此。

有人可以告诉我我做错了还是不支持?

预先感谢

1 个答案:

答案 0 :(得分:1)

您正在定义的只是全局vue实例,默认情况下它是不响应的-https://vuejs.org/v2/cookbook/adding-instance-properties.html

要使其具有反应性,您可以遵循Vue.observable,例如-https://vuejs.org/v2/api/#Vue-observable

Vue.prototype.$globalArray = Vue.observable([])