前言
在项目中,经常会复用一些变量和函数,比如用户的登录token,用户信息等。这时将它们设为全局的就显得很重要了,全局变量和全局函数之间有一些相通之处,它们其实很简单,但是有些人可能还不太了解。简单总结分享一波,希望对你有所帮助。
定义全局变量
原理:使用模块(.js或.vue文件)来管理全局变量,最后使用export暴露出去 (最好导出的格式为对象,方便在其他地方调用),当其它地方需要使用时,用import导入该模块
1、使用全局变量专用模块,挂载到main.js文件上面
全局变量模块Global.vue定义如下:
const token='12345678';
const userStatus=false;
export default {
token, // 用户token身份
userStatus // 用户登录状态
}
模块里的变量用export暴露出去,当其它地方需要使用时,引入模块便可。
使用全局变量:
import global from '../../components/Global'//引用模块进来
export default {
data () {
return {
token:global.token,//将全局变量赋值到data里面
}
}
}
2、全局变量模块挂载到Vue.prototype上
Global.vue文件同上,在项目入口的main.js里配置:
import global from '../../components/Global'
Vue.prototype.GLOBAL = global
挂载之后,在需要引用全局变量的模块处,不需再导入全局变量模块,而是直接用this就可以引用了,如下:
export default {
data () {
return {
token: this.GLOBAL.token,
}
}
}
方法一跟方法二的主要区别是,方法二全局只需要导入一次就可以,简单方便。
3、使用vuex定义全局变量
Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态。因此可以存放着全局量。
// index.js文件里定义vuex
import state from './state'
export default new Vuex.Store({
actions,
getters,
mutations,
state,
})
// state.js里面存放全局变量,并且暴露出去
const state = {
token:'12345678',
language: 'en',
}export default state
使用的时候,在需要引用全局变量的模块处直接使用this.$store调用
export default {
methods: {
getInternation() {
if (this.$store.state.language === 'en') {
this.internation = 2
} else if (this.$store.state.language === 'zh_CN') {










