Vue使变量在所有组件中可用

时间:2017-06-27 08:08:58

标签: javascript vue.js vuejs2 vue-component

我目前正在从dom中读出一个语言设置,并将其设置为global Vue.js变量,如下所示:

const language = document.querySelector('html').getAttribute('lang');
Vue.prototype.$language = language;

它工作正常,但我也从Vue.js事件总线中看到了这个例子:

Object.defineProperties(Vue.prototype, {
    $bus: {
        get() {
            return EventBus;
        }
    }
});

这两者之间真正的区别是什么?是否有更优选的方法可以做到这一点?

1 个答案:

答案 0 :(得分:3)

当您需要设置属性描述符(如getter,setter,read only等)时,可以使用

Object.defineProperties

但在你的情况下使用 Vue.prototype。$ language = language; 将是更清洁的方法。

如果您正在寻找Vue首选方式,这是向Vue实例添加实例属性的guide