详解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代码
Sep 17 Javascript
IE6下出现JavaScript未结束的字符串常量错误的解决方法
Nov 21 Javascript
关于jQuery UI 使用心得及技巧
Oct 10 Javascript
Android中资源文件(非代码部分)的使用概览
Dec 18 Javascript
父节点获取子节点的字符串示例代码
Feb 26 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
Mar 04 Javascript
jQuery实现手机号码输入提示功能实例
Apr 30 Javascript
js中的面向对象入门
Mar 06 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
Jul 07 Javascript
Vue 中 filter 与 computed 的区别与用法解析
Nov 21 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
Aug 10 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
Aug 31 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通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
PHP信号处理机制的操作代码讲解
2019/04/19 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
基于jQuery的消息提示插件之旅 DivAlert(三)
2010/04/01 Javascript
javascript替换已有元素replaceChild()使用介绍
2014/04/03 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
详解webpack编译速度提升之DllPlugin
2019/02/05 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
Python中的id()函数指的什么
2017/10/17 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
Django分页功能的实现代码详解
2019/07/29 Python
利用python实现AR教程
2019/11/20 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
linux 下selenium chrome使用详解
2020/04/02 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
高中生自我评价个人范文
2013/11/09 职场文书
村优秀党员事迹材料
2014/01/15 职场文书
通信生自我鉴定
2014/01/18 职场文书
致400米运动员广播稿
2014/02/07 职场文书
有兼职工作经历的简历自我评价
2014/03/07 职场文书
《春笋》教学反思
2014/04/15 职场文书
关于保护环境的建议书
2014/05/13 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书