浅谈在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和jquery修改a标签的href属性
Dec 16 Javascript
使用jquery.qrcode生成彩色二维码实例
Aug 08 Javascript
CSS3,HTML5和jQuery搜索框集锦
Dec 02 Javascript
js创建对象的方式总结
Jan 10 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
Nov 04 Javascript
详解angularjs结合pagination插件实现分页功能
Feb 10 Javascript
ReactNative实现图片上传功能的示例代码
Jul 11 Javascript
VUE2实现事件驱动弹窗示例
Oct 21 Javascript
实例介绍JavaScript中多种组合继承
Jan 20 Javascript
node省市区三级数据性能测评实例分析
Nov 06 Javascript
JS实现页面鼠标点击出现图片特效
Aug 19 Javascript
vue 中 get / delete 传递数组参数方法
Mar 23 Vue.js
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
ThinkPHP采用模块和操作分析
2011/04/18 PHP
php 操作调试的方法
2012/07/12 PHP
PHPCMS手机站伪静态设置详细教程
2017/02/06 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
封装的jquery翻页滚动(示例代码)
2013/11/18 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
JS版元素周期表实现方法
2015/08/05 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
node中Express 动态设置端口的方法
2017/08/04 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
小程序实现tab标签页
2020/11/16 Javascript
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
Python面向对象类的继承实例详解
2018/06/27 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
python实现ftp文件传输功能
2020/03/20 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
基层工作经历证明
2014/01/13 职场文书
车间安全生产标语
2014/06/06 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
社保转移委托书范本
2014/10/08 职场文书
用Python创建简易网站图文教程
2021/06/11 Python
用Python仅20行代码编写一个简单的端口扫描器
2022/04/08 Python
正则表达式基础与常用验证表达式
2022/06/16 Javascript