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 相关文章推荐
脚本吧 - 幻宇工作室用到js,超强推荐base.js
Dec 23 Javascript
学习ExtJS Column布局
Oct 08 Javascript
Javascript 类型转换方法
Oct 24 Javascript
jQuery控制div实现随滚动条滚动效果
Jun 07 Javascript
jQuery使用正则表达式限制文本框只能输入数字
Jun 18 Javascript
input框中的name和id的区别
Nov 16 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
Nov 25 Javascript
Web 开发中Ajax的Session 超时处理方法
Jan 19 Javascript
Vue.js实战之利用vue-router实现跳转页面
Apr 01 Javascript
详解AngularJS ui-sref的简单使用
Apr 24 Javascript
Vue项目路由刷新的实现代码
Apr 17 Javascript
IE11下处理Promise及Vue的单项数据流问题
Jul 24 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
php printf输出格式使用说明
2010/12/05 PHP
浅析十款PHP开发框架的对比
2013/07/05 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
js+css实现打字效果
2020/06/24 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
vue的过滤器filter实例详解
2018/09/17 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
JS中队列和双端队列实现及应用详解
2020/09/29 Javascript
Python functools模块学习总结
2015/05/09 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
Python + selenium自动化环境搭建的完整步骤
2018/05/19 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
python检查目录文件权限并修改目录文件权限的操作
2020/03/11 Python
python实现四人制扑克牌游戏
2020/04/22 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
详解Python 最短匹配模式
2020/07/29 Python
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
美国首屈一指的高品质珠宝设计师和零售商:Allurez
2018/01/23 全球购物
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
护理专科毕业生自荐书范文
2014/02/19 职场文书
优秀纪检干部材料
2014/08/27 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
Nginx访问日志及错误日志参数说明
2021/03/31 Servers
SQL注入详解及防范方法
2021/12/06 MySQL
iOS 16进一步确认,一共支持16款iPhone
2022/04/28 数码科技
MySQL sql模式设置引起的问题
2022/05/15 MySQL