Vue.prototype全局变量问题

Vue.prototype.$SpinTag = false;在js中this.$SpinTag=true;改了值,页面中{{$SpinTag}}数据不同步,谁知道是什么原因么?

问了朋友,给的答复是“放原型上的属性本来就没有响应式监听的”。
但是我该如何实现我的一个需求,做一个全局的变量,并且能够实现全局的双向绑定的效果呢?

阅读 4.6k
4 个回答

首先为什么不用vuex呢?

如果想触发更新的话可以创建个中央事件总线,当在$SpinTag更新的时候,同步在$EventBus$emit广播事件,触发更新的话可以在包含{{$SpinTag}}的页面的$on这个事件,重新读取this.$SpinTag

ps:事件总线 Vue.prototype.$EventBus = new Vue()

试试这样:

const vue = new Vue({
    ...
});
vue.$set(vue, 'SpinTag', false);
新手上路,请多包涵

楼主的想法很好,可以借助Vue.observable这个API来实现一个小型的数据共享对象。

全局共享响应式变量,最好还是vuex

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题