Vue 使变量在所有组件中可用
Vue making a variable available in all components
我目前正在从 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;
}
}
});
这两者之间的真正区别是什么?是否有更可取的方法?
Object.defineProperties 可用于设置 属性 描述符,例如 getter、setter、只读等。
但在你的情况下使用
Vue.prototype.$language = language; 将是更简洁的方法。
如果您正在寻找 Vue 首选方式,这是关于向 Vue 实例添加实例属性的 guide。
我目前正在从 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;
}
}
});
这两者之间的真正区别是什么?是否有更可取的方法?
Object.defineProperties 可用于设置 属性 描述符,例如 getter、setter、只读等。
但在你的情况下使用 Vue.prototype.$language = language; 将是更简洁的方法。
如果您正在寻找 Vue 首选方式,这是关于向 Vue 实例添加实例属性的 guide。