详解VUE 定义全局变量的几种实现方式


Posted in Javascript onJune 01, 2017

最近在学习VUE.js 中间涉及到JS全局变量,与其说是VUE的全局变量,不如说是模块化JS开发的全局变量。

1、全局变量专用模块

就是以一个特定模块来组织管理这些全局量,需要引用的地方导入该模块便好。

全局变量专用模块 Global.vue

<script type="text/javascript">
const colorList = [
 '#F9F900',
 '#6FB7B7',
 '#9999CC',
 '#B766AD',
 '#B87070',
 '#FF8F59',
 '#FFAF60',
 '#FFDC35',
 '#FFFF37',
 '#B7FF4A',
 '#28FF28',
 '#1AFD9C',
 '#00FFFF',
 '#2894FF',
 '#6A6AFF',
 '#BE77FF',
 '#FF77FF',
 '#FF79BC',
 '#FF2D2D',
 '#ADADAD'
]
const colorListLength = 20
function getRandColor () {
 var tem = Math.round(Math.random() * colorListLength)
 return colorList[tem]
}
export default
{
 colorList,
 colorListLength,
 getRandColor
}
</script>

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

需要使用全局变量的模块 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>
<style scoped type="text/css">
.projectItem
{
 margin: 5px;
 width: 200px;
 height: 120px;
 /*border:1px soild;*/
 box-shadow: 1px 1px 10px;
}
.projectItem a
{
 min-width: 200px;
}
.projectItem a span
{
 text-align: center;
 display: block;
}
</style>

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>

3、使用VUEX

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

链接:vuex官方介绍

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

Javascript 相关文章推荐
javascript+iframe 实现无刷新载入整页的代码
Mar 17 Javascript
window.dialogArguments 使用说明
Apr 11 Javascript
JS异常处理的一个想法(sofish)
Mar 14 Javascript
Javascript将JSON日期格式化
Aug 23 Javascript
微信小程序 数据绑定详解及实例
Oct 25 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 jQuery
Vue动态组件实例解析
Aug 20 Javascript
解决layer.open后laydate失效的问题
Sep 06 Javascript
vue实现节点增删改功能
Sep 26 Javascript
JavaScript十大取整方法实例教程
Dec 03 Javascript
原生js实现放大镜组件
Jan 22 Javascript
JavaScript实现音乐播放器
Aug 14 Javascript
详解vue过滤器在v2.0版本用法
Jun 01 #Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
Jun 01 #Javascript
js随机生成一个验证码
Jun 01 #Javascript
JS实现简单抖动效果
Jun 01 #Javascript
深入理解vue中的$set
Jun 01 #Javascript
详解angular中的作用域及继承
May 31 #Javascript
Node学习记录之cluster模块
May 31 #Javascript
You might like
非常经典的PHP文件上传类分享
2016/05/15 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
判断脚本加载是否完成的方法
2009/05/26 Javascript
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
2010/03/07 Javascript
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
详解js数组的完全随机排列算法
2016/12/16 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
详解vuex commit保存数据技巧
2018/12/25 Javascript
Vue中全局变量的定义和使用
2019/06/05 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
Python中有趣在__call__函数
2015/06/21 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
Python continue语句实例用法
2020/02/06 Python
html5手机端页面可以向右滑动导致样式受影响的问题
2018/06/20 HTML / CSS
美国知名的家庭连锁百货商店:Boscov’s
2017/07/27 全球购物
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
ALDO加拿大官网:加拿大女鞋品牌
2018/12/22 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
新书发布会策划方案
2014/06/09 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
初中班干部工作总结
2015/08/10 职场文书
python 经纬度求两点距离、三点面积操作
2021/06/03 Python