浅谈在vue项目中如何定义全局变量和全局函数


Posted in Javascript onOctober 24, 2017

写在前面:

如题,在项目中,经常有些函数和变量是需要复用,比如说网站服务器地址,从后台拿到的:用户的登录token,用户的地址信息等,这时候就需要设置一波全局变量和全局函数,这两个设置不太难,而且有一些共通之处,可能有一些朋友对此不太了解,所以随便写出来分享一波。有需要的朋友可以做一下参考,喜欢的可以点波赞,或者关注一下,希望可以帮到大家。

定义全局变量

原理:

设置一个专用的的全局变量模块文件,模块里面定义一些变量初始状态,用export default 暴露出去,在main.js里面使用Vue.prototype挂载到vue实例上面或者在其它地方需要使用时,引入该模块便可。

全局变量模块文件:

Global.vue文件:

<script>
const serverSrc='www.baidu.com';
const token='12345678';
const hasEnter=false;
const userSite="中国钓鱼岛";
 export default
 {
  userSite,//用户地址
  token,//用户token身份
  serverSrc,//服务器地址
  hasEnter,//用户登录状态
 }
</script>

使用方式1:

在需要的地方引用进全局变量模块文件,然后通过文件里面的变量名字获取全局变量参数值。

在text1.vue组件中使用:

<template>
  <div>{{ token }}</div>
</template>

<script>
import global_ from '../../components/Global'//引用模块进来
export default {
 name: 'text',
data () {
  return {
     token:global_.token,//将全局变量赋值到data里面,也可以直接使用global_.token
    }
  }
}
</script>
<style lang="scss" scoped>

</style>

使用方式2:

在程序入口的main.js文件里面,将上面那个Global.vue文件挂载到Vue.prototype。

import global_ from './components/Global'//引用文件
  Vue.prototype.GLOBAL = global_//挂载到Vue实例上面

接着在整个项目中不需要再通过引用Global.vue模块文件,直接通过this就可以直接访问Global文件里面定义的全局变量。

text2.vue:

<template>
  <div>{{ token }}</div>
</template>

<script>
export default {
 name: 'text',
data () {
  return {
     token:this.GLOBAL.token,//直接通过this访问全局变量。
    }
  }
}
</script>
<style lang="scss" scoped>
</style>

Vuex也可以设置全局变量:

通过vuex来存放全局变量,这里东西比较多,也相对复杂一些,有兴趣的小伙伴们,可自行查阅资料,折腾一波、

定义全局函数

原理

新建一个模块文件,然后在main.js里面通过Vue.prototype将函数挂载到Vue实例上面,通过this.函数名,来运行函数。

1. 在main.js里面直接写函数

简单的函数可以直接在main.js里面直接写

Vue.prototype.changeData = function (){//changeData是函数名
 alert('执行成功');
}

组件中调用:

this.changeData();//直接通过this运行函数

2. 写一个模块文件,挂载到main.js上面。

base.js文件,文件位置可以放在跟main.js同一级,方便引用

exports.install = function (Vue, options) {
  Vue.prototype.text1 = function (){//全局函数1
  alert('执行成功1');
  };
  Vue.prototype.text2 = function (){//全局函数2
  alert('执行成功2');
  };
};

main.js入口文件:

import base from './base'//引用
  Vue.use(base);//将全局函数当做插件来进行注册

组件里面调用:

this.text1();
  this.text2();

后话

上面就是如何定义全局变量 全局函数的内容了,这里的全局变量全局函数可以不局限于vue项目,vue-cli是用了webpack做模块化,其他模块化开发,定义全局变量、函数的套路基本上是差不多。上文只是对全局变量,全局函数的希望看完本文能给大家一点帮助。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JScript内置对象Array中元素的删除方法
Mar 08 Javascript
js弹窗返回值详解(window.open方式)
Jan 11 Javascript
JavaScript创建对象的方式小结(4种方式)
Dec 17 Javascript
Bootstrap树形控件使用方法详解
Jan 27 Javascript
AngularJS ng-repeat数组有重复值的解决方法
Oct 23 Javascript
vue-dialog的弹出层组件
May 25 Javascript
原生js二级联动效果
Jun 20 Javascript
jQuery使用bind函数实现绑定多个事件的方法
Oct 11 jQuery
简单谈谈CommonsChunkPlugin抽取公共模块
Dec 31 Javascript
angular2中使用第三方js库的实例
Feb 26 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
Aug 27 Javascript
layui-select动态选中值的例子
Sep 23 Javascript
Angularjs添加排序查询功能的实例代码
Oct 24 #Javascript
详解基于Vue+Koa的pm2配置
Oct 24 #Javascript
Vue.js2.0中的变化小结
Oct 24 #Javascript
使用Node.js实现ORM的一种思路详解(图文)
Oct 24 #Javascript
分享vue.js devtools遇到一系列问题
Oct 24 #Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
Oct 24 #Javascript
Vue基于NUXT的SSR详解
Oct 24 #Javascript
You might like
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
php查看session内容的函数
2008/08/27 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
PHP实现远程下载文件到本地
2015/05/17 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
2020/04/06 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python3访问并下载网页内容的方法
2015/07/28 Python
Python基于TCP实现会聊天的小机器人功能示例
2018/04/09 Python
python 返回列表中某个值的索引方法
2018/11/07 Python
Python 元组操作总结
2019/09/18 Python
全球知名旅游社区巴西站点:TripAdvisor巴西
2016/07/21 全球购物
阿波罗盒子:Apollo Box
2017/08/14 全球购物
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
2014年教师节寄语
2014/04/03 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
男方家长婚礼致辞
2015/07/27 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android