浅谈在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 相关文章推荐
JavaScript下申明对象的几种方法小结
Oct 02 Javascript
jquery中this的使用说明
Sep 06 Javascript
Javascript添加监听与删除监听用法详解
Dec 19 Javascript
浅析AngularJS中的生命周期和延迟处理
Jun 18 Javascript
实例详解angularjs和ajax的结合使用
Oct 22 Javascript
JavaScript构造函数详解
Dec 27 Javascript
JS中artdialog弹出框控件之提交表单思路详解
Apr 18 Javascript
JS模态窗口返回值兼容问题的完美解决方法
May 28 Javascript
JS闭包用法实例分析
Mar 27 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
Aug 20 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
Apr 16 Javascript
vue实现滑动到底部加载更多效果
Oct 27 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
Zend引擎的发展 [15]
2006/10/09 PHP
php 显示指定路径下的图片
2009/10/29 PHP
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
2007/07/11 Javascript
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
在JavaScript中处理字符串之link()方法的使用
2015/06/08 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
vue-loader教程介绍
2017/06/14 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
小程序实现新用户判断并跳转激活的方法
2019/05/20 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
python中logging库的使用总结
2017/10/18 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
python爬取网易云音乐评论
2018/11/16 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
阿迪达斯奥地利官方商城:adidas.at
2016/10/16 全球购物
ET Mall东森购物网:东森严选
2017/03/06 全球购物
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
优秀实习自我鉴定
2013/12/04 职场文书
推荐信格式范文
2014/05/09 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
职业生涯规划书之大学四年
2019/08/07 职场文书
吃通javascript正则表达式
2021/04/21 Javascript
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers