VUE 全局变量的几种实现方式


Posted in Javascript onAugust 22, 2018

1、全局变量专用模块

意思是说,用一个模块(js or vue)管理这套全局变量,模块里的变量用export (最好导出的格式为对象,方便在其他地方调用)暴露出去,当其它地方需要使用时,用import 导入该模块

全局变量专用模块Global.vue

const colorList = [
 '#F9F900',
 '#6FB7B7',
]
const colorListLength = 20
function getRandColor () {
 var tem = Math.round(Math.random() * colorListLength)
 return colorList[tem]
}
export default
{
 colorList,
 colorListLength,
 getRandColor
}

模块里的变量用出口暴露出去,当其它地方需要使用时,引入模块全球便可。

需要使用全局变量的模块html5.vue

<template>
 <ul>
  <template v-for="item in mainList">
   <div class="projectItem" :style="'box-shadow:1px 1px 10px '+ getColor()">
     <router-link :to="'project/'+item.id">
      ![](item.img)
      <span>{{item.title}}</span>
     </router-link>
   </div>
  </template>
 </ul>
</template>
<script type="text/javascript">
import global from 'components/tool/Global'
export default {
 data () {
  return {
   getColor: global.getRandColor,
   mainList: [
    {
     id: 1,
     img: require('../../assets/rankIcon.png'),
     title: '登录界面'
    },
    {
     id: 2,
     img: require('../../assets/rankIndex.png'),
     title: '主页'
    }
   ]
  }
 }
}
</script>

2、全局变量模块挂载到Vue.prototype 里

Global.js同上,在程序入口的main.js里加下面代码

import global_ from './components/tool/Global'
Vue.prototype.GLOBAL = global_

挂载之后,在需要引用全局量的模块处,不需再导入全局量模块,直接用this就可以引用了,如下:

<script type="text/javascript">
export default {
data () {

return {
 getColor: this.GLOBAL.getRandColor,
 mainList: [
  {
   id: 1,
   img: require('../../assets/rankIcon.png'),
   title: '登录界面'
  },
  {
   id: 2,
   img: require('../../assets/rankIndex.png'),
   title: '主页'
  }
 ]
}
}
}
</script>

1和2的区别在于:2不用在用到的时候必须按需导入全局模块文件

3、vuex

Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态。因此可以存放着全局量。因为Vuex有点繁琐,有点杀鸡用牛刀的感觉。认为并没有必要。

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

Javascript 相关文章推荐
列表内容的选择
Jun 30 Javascript
项目实践之javascript技巧
Dec 06 Javascript
js word表格动态添加代码
Jun 07 Javascript
javascript 冒泡排序 正序和倒序实现代码
Dec 14 Javascript
jQuery 三击事件实现代码
Sep 11 Javascript
jquery实现滑动特效代码
Aug 10 Javascript
JavaScript实现页面跳转的几种常用方式
Nov 28 Javascript
jquery获取所有选中的checkbox实现代码
May 26 Javascript
Html中 IFrame的用法及注意点
Dec 22 Javascript
分享一道关于闭包、bind和this的面试题
Feb 20 Javascript
微信小程序 实现点击添加移除class
Jun 12 Javascript
ES6 Promise对象的含义和基本用法分析
Jun 14 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
Aug 22 #Javascript
基于vue.js中关于下拉框的值默认及绑定问题
Aug 22 #Javascript
微信小程序有旋转动画效果的音乐组件实例代码
Aug 22 #Javascript
vue2.0 下拉框默认标题设置方法
Aug 22 #Javascript
VUE中v-on:click事件中获取当前dom元素的代码
Aug 22 #Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
Aug 21 #jQuery
js动态设置select下拉菜单的默认选中项实例
Aug 21 #Javascript
You might like
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
使用 PHPStorm 开发 Laravel
2015/03/24 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
php图像验证码生成代码
2017/06/08 PHP
js每隔5分钟执行一次ajax请求的实现方法
2013/11/27 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
JavaScript错误处理
2015/02/03 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
2016/05/19 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
jQuery实现发送验证码并60秒倒计时功能
2016/11/25 Javascript
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
[44:41]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python探索之URL Dispatcher实例详解
2017/10/28 Python
python实现自动网页截图并裁剪图片
2018/07/30 Python
Python高级特性与几种函数的讲解
2019/03/08 Python
python实现按行分割文件
2019/07/22 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
泰国Robinson百货官网:购买知名品牌的商品
2020/02/08 全球购物
什么是反射
2012/03/17 面试题
英文翻译的自我评价语句
2013/10/04 职场文书
工作时间上网检讨书
2014/02/03 职场文书
环境科学专业教师求职信
2014/07/12 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
助学贷款贫困证明
2014/09/23 职场文书
导游词400字
2015/02/13 职场文书
开业庆典嘉宾致辞
2015/08/01 职场文书