首页 > 解决方案 > 全局实例属性更改时 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.js

解决方案


您只定义了一个全局 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: []})

推荐阅读