有人知道如何在Vue 3中添加全局变量吗?
在Vue 2中,我们在main.js
文件中使用:
Vue.prototype.$myGlobalVariable = globalVariable
有人知道如何在Vue 3中添加全局变量吗?
在Vue 2中,我们在main.js
文件中使用:
Vue.prototype.$myGlobalVariable = globalVariable
最直接的替代品是app.config.globalProperties
.见:
https://v3.vuejs.org/api/application-config.html#globalproperties
所以:
Vue.prototype.$myGlobalVariable = globalVariable
变成:
const app = Vue.createApp({})
app.config.globalProperties.$myGlobalVariable = globalVariable
请注意,这是针对特定应用程序的,而不是像Vue.prototype
一样是全局的.这是在设计上,所有全局配置选项现在都适用于一个应用程序.
相关RFC如下:
https://github.com/vuejs/rfcs/blob/master/active-rfcs/0009-global-api-change.md
请注意,应用程序级别provide
/inject
(也在RFC中讨论)也是使用Vue.prototype
的替代方案:
const app = Vue.createApp({})
app.provide('myGlobalVariable', globalVariable)
// In the descendant component
export default {
inject: ['myGlobalVariable']
}
doctor :https://v3.vuejs.org/api/application-api.html#provide
这里的 idea 是,组件可以显式声明属性,而不是通过魔法继承它.这避免了名称冲突等问题,因此不需要使用$
前缀.这也有助于明确房产的确切来源.
你喜欢哪种方法取决于你的情况.