VUE 全局变量的几种实现方式


Posted in Javascript onAugust 22, 2018

1、全局变量专用模块

意思是说,用一个模块(js or vue)管理这套全局变量,模块里的变量用export (最好导出的格式为对象,方便在其他地方调用)暴露出去,当其它地方需要使用时,用import 导入该模块

全局变量专用模块Global.vue

const colorList = [
 '#F9F900',
 '#6FB7B7',
]
const colorListLength = 20
function getRandColor () {
 var tem = Math.round(Math.random() * colorListLength)
 return colorList[tem]
}
export default
{
 colorList,
 colorListLength,
 getRandColor
}

模块里的变量用出口暴露出去,当其它地方需要使用时,引入模块全球便可。

需要使用全局变量的模块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>

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>

1和2的区别在于:2不用在用到的时候必须按需导入全局模块文件

3、vuex

Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态。因此可以存放着全局量。因为Vuex有点繁琐,有点杀鸡用牛刀的感觉。认为并没有必要。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
Jan 12 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
Apr 17 Javascript
javascript使用数组的push方法完成快速排序
Sep 15 Javascript
JavaScript返回网页中超链接数量的方法
Apr 03 Javascript
javascript学习指南之回调问题
Apr 23 Javascript
在点击div中的p时,如何阻止事件冒泡
Feb 07 Javascript
vue axios请求拦截实例代码
Mar 29 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
May 30 Javascript
js调用设备摄像头的方法
Jul 19 Javascript
微信小程序中使用wxss加载图片并实现动画效果
Aug 13 Javascript
javascript防抖函数debounce详解
Jun 11 Javascript
用Vue.js方法创建模板并使用多个模板合成
Jun 28 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
Aug 22 #Javascript
基于vue.js中关于下拉框的值默认及绑定问题
Aug 22 #Javascript
微信小程序有旋转动画效果的音乐组件实例代码
Aug 22 #Javascript
vue2.0 下拉框默认标题设置方法
Aug 22 #Javascript
VUE中v-on:click事件中获取当前dom元素的代码
Aug 22 #Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
Aug 21 #jQuery
js动态设置select下拉菜单的默认选中项实例
Aug 21 #Javascript
You might like
PHP中单例模式与工厂模式详解
2017/02/17 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
js判断变量是否空值的代码
2008/10/26 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
jQuery、zepto、js常用小技巧
2017/02/12 Javascript
react-router实现按需加载
2017/05/09 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
vue如何判断dom的class
2018/04/26 Javascript
详解Chart.js轻量级图表库的使用经验
2018/05/22 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
[01:46]新英雄登场
2019/09/10 DOTA
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
求职简历中自我评价
2014/01/28 职场文书
小学生环保演讲稿
2014/04/25 职场文书
事业单位考核材料
2014/05/21 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
2014年人事部工作总结
2014/12/03 职场文书
英语感谢信范文
2015/01/20 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
绿色环保倡议书
2015/04/28 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
Golang实现AES对称加密的过程详解
2021/05/20 Golang
react中的DOM操作实现
2021/06/30 Javascript
app场景下uniapp的扫码记录
2022/07/23 Java/Android