详解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 相关文章推荐
利用Ext Js生成动态树实例代码
Sep 08 Javascript
两个select之间option的互相添加操作(jquery实现)
Nov 12 Javascript
监控 url fragment变化的js代码
Apr 19 Javascript
javascript模拟的Ping效果代码 (Web Ping)
Mar 13 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
Dec 02 Javascript
浅析document.ready和window.onload的区别讲解
Dec 18 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
May 08 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
Mar 26 Javascript
JavaScript获得url查询参数的方法
Jul 02 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
Dec 13 Javascript
基于JavaScript实现的折半查找算法示例
Apr 14 Javascript
Vue数据绑定简析小结
May 07 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
一个目录遍历函数
2006/10/09 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
php跨站攻击实例分析
2014/10/28 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
2017/05/05 PHP
PHP配置ZendOpcache插件加速
2019/02/14 PHP
Javascript下IE与Firefox下的差异兼容写法总结
2010/06/18 Javascript
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
2011/05/28 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
JavaScript实现的内存数据库LokiJS介绍和入门实例
2014/11/17 Javascript
angular中使用路由和$location切换视图
2015/01/23 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
jQuery获取当前点击的对象元素(实现代码)
2016/05/19 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
基于python实现简单日历
2018/07/28 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
2019/01/29 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
python 瀑布线指标编写实例
2020/06/03 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
python+selenium爬取微博热搜存入Mysql的实现方法
2021/01/27 Python
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
汽车促销活动方案
2014/03/31 职场文书
大专学生求职自荐信
2014/07/06 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang