vue实现全局变量
Vue 实现全局变量的方法
在 Vue 中,可以通过多种方式实现全局变量的共享。以下是几种常见的方法:
使用 Vue.prototype
通过将变量挂载到 Vue 的原型上,可以在所有组件中通过 this 访问该变量。
// main.js
import Vue from 'vue'
Vue.prototype.$globalVar = 'This is a global variable'
// 在组件中使用
this.$globalVar
使用 Vuex 状态管理
Vuex 是 Vue 的官方状态管理库,适合管理复杂的全局状态。

// store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
globalVar: 'This is a global variable'
},
getters: {
getGlobalVar: state => state.globalVar
},
mutations: {
setGlobalVar(state, value) {
state.globalVar = value
}
}
})
// 在组件中使用
this.$store.state.globalVar
this.$store.getters.getGlobalVar
this.$store.commit('setGlobalVar', 'New value')
使用全局混入 (Global Mixin)
通过全局混入,可以将变量或方法注入到所有组件中。
// main.js
import Vue from 'vue'
Vue.mixin({
data() {
return {
globalVar: 'This is a global variable'
}
},
methods: {
setGlobalVar(value) {
this.globalVar = value
}
}
})
// 在组件中使用
this.globalVar
this.setGlobalVar('New value')
使用 Provide/Inject
通过 provide 在根组件提供变量,然后在子组件中通过 inject 注入使用。

// App.vue
export default {
provide() {
return {
globalVar: 'This is a global variable'
}
}
}
// 子组件中使用
export default {
inject: ['globalVar']
}
使用 window 对象
将变量挂载到 window 对象上,可以在任何地方访问。
// main.js
window.globalVar = 'This is a global variable'
// 在任何地方使用
window.globalVar
使用环境变量
通过 .env 文件定义全局变量,适用于配置信息。
// .env
VUE_APP_GLOBAL_VAR=This is a global variable
// 在代码中使用
process.env.VUE_APP_GLOBAL_VAR
选择建议
- 对于简单的全局变量,推荐使用
Vue.prototype或Provide/Inject。 - 对于复杂的状态管理,推荐使用
Vuex。 - 对于配置信息,推荐使用环境变量。
- 避免过度使用
window对象,以免污染全局命名空间。






