我的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
中插入内容时,情况也是如此。
有人可以告诉我我做错了还是不支持?
预先感谢
答案 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([])