【问题标题】:Vue making a variable available in all componentsVue 使变量在所有组件中都可用
【发布时间】:2017-11-30 04:59:13
【问题描述】:

我目前正在从 dom 中读取语言设置并将其设置为 globalVue.js 变量,如下所示:

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

它工作正常,但我也将其视为 Vue.js 事件总线的示例:

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

这两者之间的真正区别是什么?是否有可能更受欢迎的方式来做到这一点?

【问题讨论】:

  • 不是真正的 vue-relative,有点欺骗:stackoverflow.com/questions/38961414/…
  • @Cobaltway 在我的情况下没有任何配置选项会导致与直接设置原型相同吗?还是默认设置仍然不同?
  • 如果您不使用任何 defineProperties 选项,我认为没有任何真正的区别。直接分配原型可能会稍微快一些。必须经过测试。

标签: javascript vue.js vuejs2 vue-component


【解决方案1】:

Object.defineProperties 可用于需要设置属性描述符,例如 getter 、 setter 、只读等。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多