详解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变量函数浅析
Sep 02 Javascript
js判断当前浏览器类型,判断IE浏览器方法
Jun 02 Javascript
js用拖动滑块来控制图片大小的方法
Feb 27 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
Aug 13 Javascript
js滑动提示效果代码分享
Mar 10 Javascript
学习vue.js中class与style绑定
Dec 03 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 jQuery
js实现web调用摄像头 js截取视频画面
Apr 21 Javascript
JavaScript定时器设置、使用与倒计时案例详解
Jul 08 Javascript
vue使用showdown并实现代码区域高亮的示例代码
Oct 17 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
Apr 14 Javascript
Vue如何实现组件间通信
May 15 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
php SQL防注入代码集合
2008/04/25 PHP
在WINDOWS中设置计划任务执行PHP文件的方法
2011/12/19 PHP
使用symfony命令创建项目的方法
2016/03/17 PHP
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
javascript for循环设法提高性能
2010/02/24 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
2017/05/02 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
js实现无缝轮播图插件封装
2020/07/31 Javascript
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
优化Python代码使其加快作用域内的查找
2015/03/30 Python
Tensorflow 实现修改张量特定元素的值方法
2018/07/30 Python
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
对django views中 request, response的常用操作详解
2019/07/17 Python
Python中join()函数多种操作代码实例
2020/01/13 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
机械制造专业个人的自我评价
2013/12/28 职场文书
小区门卫岗位职责
2013/12/31 职场文书
应届生简历中的自我评价
2014/01/13 职场文书
初中家长评语和期望
2014/12/26 职场文书
万能检讨书
2015/01/27 职场文书
使用tensorflow 实现反向传播求导
2021/05/26 Python
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python
Linux7.6二进制安装Mysql8.0.27详细操作步骤
2021/11/27 MySQL
Python如何加载模型并查看网络
2022/07/15 Python