vue2 全局变量的设置方法


Posted in Javascript onMarch 09, 2018

最近在学习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有点繁琐,有点杀鸡用牛刀的感觉。认为并没有必要。

以上这篇vue2 全局变量的设置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 动画弹出窗体支持多种展现方式
Apr 29 Javascript
JavaScript聚焦于第一个字段的代码
Oct 15 Javascript
基于Jquery的标签智能验证实现代码
Dec 27 Javascript
JavaScript电子时钟倒计时
Jan 09 Javascript
浅谈bootstrap源码分析之tab(选项卡)
Jun 06 Javascript
全面解析Javascript无限添加QQ好友原理
Jun 15 Javascript
使用JavaScript为一张图片设置备选路径的方法
Jan 04 Javascript
node中使用es5/6以及支持性与性能对比
Aug 11 Javascript
开发用到的js封装方法(20种)
Oct 12 Javascript
Vue实现一个图片懒加载插件
Mar 11 Javascript
微信小程序中显示倒计时代码实例
May 09 Javascript
基于JavaScript实现年月日三级联动
Jun 22 Javascript
JS扩展String.prototype.format字符串拼接的功能
Mar 09 #Javascript
详解ES6通过WeakMap解决内存泄漏问题
Mar 09 #Javascript
JavaScript实现微信号随机切换代码
Mar 09 #Javascript
AngularJS中重新加载当前路由页面的方法
Mar 09 #Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
Mar 09 #Javascript
vue+element-ui+ajax实现一个表格的实例
Mar 09 #Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
Mar 09 #Javascript
You might like
一个简单计数器的源代码
2006/10/09 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
Maps Javascript
2007/01/22 Javascript
javascript 简练的几个函数
2009/08/29 Javascript
JavaScript 定义function的三种方式小结
2009/10/16 Javascript
关于跨站脚本攻击问题
2011/12/22 Javascript
浅析JQuery获取和设置Select选项的常用方法总结
2013/07/04 Javascript
获取数组中最大最小值方法js代码(自写)
2013/08/12 Javascript
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
AngularJS中的Directive实现延迟加载
2016/01/25 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
微信小程序表单验证错误提示效果
2017/05/19 Javascript
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
python 连接sqlite及简单操作
2017/06/30 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
Python流程控制 while循环实现解析
2019/09/02 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
职业技术学校毕业生推荐信
2013/12/03 职场文书
大型营销活动计划书
2014/04/28 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
中学生检讨书1000字
2014/10/28 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
开学典礼校长致辞
2015/07/29 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python