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 相关文章推荐
js简单实现让文本框内容逐个字的显示出来
Oct 22 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
Jul 02 Javascript
JavaScript数组去重的五种方法
Nov 05 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
Jan 08 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
Sep 14 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
Mar 09 Javascript
使用Node.js实现RESTful API的示例
Aug 01 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
Dec 27 Javascript
vue文件树组件使用详解
Mar 29 Javascript
Vue Cli3 创建项目的方法步骤
Oct 15 Javascript
使用localStorage替代cookie做本地存储
Sep 25 Javascript
java遇到微信小程序 "支付验证签名失败" 问题解决
Dec 22 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
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
PHP swfupload图片上传的实例代码
2013/09/30 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
PHP运行模式汇总
2016/11/06 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
浅析jQuery1.8的几个小变化
2013/12/10 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
解读ES6中class关键字
2017/11/20 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
2019/07/22 Javascript
vue实现文件上传读取及下载功能
2020/11/17 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
JavaScript动态生成表格的示例
2020/11/02 Javascript
python采用requests库模拟登录和抓取数据的简单示例
2014/07/05 Python
Python中的模块和包概念介绍
2015/04/13 Python
python 数据的清理行为实例详解
2017/07/12 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
python dumps和loads区别详解
2020/02/04 Python
HTML5新表单元素_动力节点Java学院整理
2017/07/12 HTML / CSS
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
实习生评语
2014/04/26 职场文书
考生诚信考试承诺书
2014/05/23 职场文书
学校百日安全生产活动总结
2014/07/05 职场文书