详解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 相关文章推荐
用JS实现的一个include函数
Jul 21 Javascript
Mootools 1.2 手风琴(Accordion)教程
Sep 15 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
Oct 30 Javascript
jQuery源码解读之removeAttr()方法分析
Feb 20 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
Dec 18 Javascript
针对JavaScript中this指向的简单理解
Aug 26 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
Mar 23 jQuery
解析Vue 2.5的Diff算法
Nov 28 Javascript
微信小程序框架wepy之动态控制类名
Sep 14 Javascript
Node.js原生api搭建web服务器的方法步骤
Feb 15 Javascript
微信小程序学习笔记之本地数据缓存功能详解
Mar 29 Javascript
如何在VUE中使用vue-awesome-swiper
Jan 04 Vue.js
详解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
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
php google或baidu分页代码
2009/11/26 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
php简单统计在线人数的方法
2016/05/10 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
JS 进度条效果实现代码整理
2011/05/21 Javascript
Prototype源码浅析 String部分(四)之补充
2012/01/16 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
原生JS实现图片懒加载(lazyload)实例
2017/06/13 Javascript
纯js代码生成可搜索选择下拉列表的实例
2018/01/11 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
[05:34]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY第二弹
2014/06/25 DOTA
Python的randrange()方法使用教程
2015/05/15 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
Python selenium如何设置等待时间
2016/09/15 Python
python日志记录模块实例及改进
2017/02/12 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
python相对企业语言优势在哪
2020/06/12 Python
Python中logger日志模块详解
2020/08/04 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
css3旋转木马_动力节点Java学院整理
2017/07/12 HTML / CSS
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
日本航空官方网站:JAL
2019/06/19 全球购物
汽车销售员如何做职业生涯规划
2014/02/16 职场文书
《猫》教学反思
2014/02/26 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
离婚协议书范文
2015/01/26 职场文书
仙境之桥观后感
2015/06/16 职场文书
解决golang结构体tag编译错误的问题
2021/05/02 Golang
Ruby处理YAML和json数据
2022/04/18 Ruby
GoFrame框架数据校验之校验结果Error接口对象
2022/06/21 Golang