vue项目中定义全局变量、函数的几种方法


Posted in Javascript onNovember 08, 2019

前言

在项目中,经常会复用一些变量和函数,比如用户的登录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中全局变量和全局函数使用的全部内容。希望总结的东西对你有所帮组。还不太了解的可以多看几遍,大家加油!!!也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript进行数组追加方法小结
Jun 16 Javascript
JQuery中Ajax()的data参数类型实例分析
Dec 15 Javascript
实现JavaScript的组成----BOM和DOM详解
May 18 Javascript
Bootstrap表单布局
Jul 19 Javascript
归纳下js面向对象的几种常见写法总结
Aug 24 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
Sep 22 Javascript
JS实现间歇滚动的运动效果实例
Dec 22 Javascript
JS对象的深度克隆方法示例
Mar 16 Javascript
JS+DIV实现的卷帘效果示例
Mar 22 Javascript
react中的ajax封装实例详解
Oct 17 Javascript
原生javascript中this几种常见用法总结
Feb 24 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
Sep 05 Javascript
Vue修改项目启动端口号方法
Nov 07 #Javascript
vue 父组件通过$refs获取子组件的值和方法详解
Nov 07 #Javascript
vue基本使用--refs获取组件或元素的实例
Nov 07 #Javascript
浅谈Vue中render中的h箭头函数
Nov 07 #Javascript
基于JavaScript伪随机正态分布代码实例
Nov 07 #Javascript
Vue 通过公共字段,拼接两个对象数组的实例
Nov 07 #Javascript
vue之a-table中实现清空选中的数据
Nov 07 #Javascript
You might like
php 购物车实例(申精)
2009/05/11 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
php生成短网址/短链接原理和用法实例分析
2020/05/29 PHP
学习YUI.Ext第七日-View&JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
jquery 简单的进度条实现代码
2010/03/11 Javascript
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
div失去焦点事件实现思路
2014/04/22 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
React-router v4 路由配置方法小结
2017/08/08 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
vue和iview实现Scroll 数据无限滚动功能
2019/10/31 Javascript
Javascript中的奇葩知识,你知道吗?
2021/01/25 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
python实现根据图标提取分类应用程序实例
2014/09/28 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
物流管理专业应届生求职信
2013/11/21 职场文书
财务专业大学生职业生涯规划范文
2013/12/30 职场文书
单位办理社保介绍信
2014/01/10 职场文书
同学聚会欢迎辞
2014/01/14 职场文书
一般党员对照检查材料
2014/09/24 职场文书
入队仪式主持词
2015/07/04 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
Django模型层实现多表关系创建和多表操作
2021/07/21 Python
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers