详解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 相关文章推荐
How to Auto Include a Javascript File
Feb 02 Javascript
jquery中this的使用说明
Sep 06 Javascript
asp知识整理笔记3(问答模式)
Sep 27 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
May 23 Javascript
jQuery基本过滤选择器用法示例
Sep 09 Javascript
值得分享的Bootstrap Table使用教程
Nov 23 Javascript
利用angular.copy取消变量的双向绑定与解析
Nov 25 Javascript
微信小程序 网络请求(post请求,get请求)
Jan 17 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
Jun 13 Javascript
Vue2.0 slot分发内容与props验证的方法
Dec 12 Javascript
react 中父组件与子组件双向绑定问题
May 20 Javascript
解决layui 三级联动下拉框更新时回显的问题
Sep 03 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 Hex RGB颜色值互换的使用
2013/05/10 PHP
老版本PHP转义Json里的特殊字符的函数
2015/06/08 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
PHP文件下载实例代码浅析
2016/08/17 PHP
php 后端实现JWT认证方法示例
2018/09/04 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
优化javascript的执行速度
2010/01/23 Javascript
jQuery无刷新切换主题皮肤实例讲解
2015/10/21 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
2016/10/16 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
vuejs 制作背景淡入淡出切换动画的实例
2018/09/01 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
微信 jssdk 签名错误invalid signature的解决方法
2019/01/14 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
2019/02/21 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
python将字符串转换成数组的方法
2015/04/29 Python
python实现提取百度搜索结果的方法
2015/05/19 Python
Python实现数通设备端口使用情况监控实例
2015/07/15 Python
python使用生成器实现可迭代对象
2018/03/20 Python
详解Python 正则表达式模块
2018/11/05 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
日本航空官方网站:JAL
2019/06/19 全球购物
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
大二法学专业职业生涯规划范文
2014/02/12 职场文书
百日安全活动总结
2014/05/04 职场文书
2015年毕业实习工作总结
2014/12/12 职场文书
巾帼文明岗事迹材料
2014/12/24 职场文书
教育教学工作反思
2016/02/24 职场文书
Nginx域名转发使用场景代码实例
2021/03/31 Servers
Django+Celery实现定时任务的示例
2021/06/23 Python