前言
在项目中,经常会复用一些变量和函数,比如用户的登录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') { this.internation = 1 } } } }
因为Vuex有点繁琐,有点杀鸡用牛刀的感觉。因此认为并没有必要使用它。上面只是简单的使用,如果想要具体了解使用方式,可以去查阅资料具体掌握。
定义全局函数
原理:在main.js里面通过Vue.prototype将函数挂载到Vue实例上面,通过this.函数名,来运行函数。
1、在main.js文件直接定义方法
简单的函数可以直接写在main.js文件里定义。
// 将方法挂载到vue原型上 Vue.prototype.changeData = function (){ alert('执行成功'); }
使用的时候组件里直接调用。
//直接通过this运行函数,这里this是vue实例对象 this.changeData();
2、使用全局函数专用模块,挂载到main.js上面
base.js文件,文件位置可以放在跟main.js同一级,方便引用(这点可以依据个人习惯决定)。
exports.install = function (Vue, options) { Vue.prototype.changeData = function (){ alert('执行成功'); }; };
main.js引入并使用。
import base from './base' Vue.use(base);
所有的组件里就可以调用该函数。
this.changeData();
结语
以上是vue中全局变量和全局函数使用的全部内容。希望总结的东西对你有所帮组。还不太了解的可以多看几遍,大家加油!!!也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。