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 相关文章推荐
window.location.href IE下跳转失效的解决方法
Mar 27 Javascript
javaScript使用EL表达式的几种方式
May 27 Javascript
js读取cookie方法总结
Oct 31 Javascript
JQuery中serialize()用法实例分析
Feb 06 Javascript
Angular2自定义分页组件
Apr 19 Javascript
vue-cli实现多页面多路由的示例代码
Jan 30 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
Aug 20 Javascript
JS代码检查工具ESLint介绍与使用方法
Feb 04 Javascript
JS数组的高级使用方法示例小结
Mar 14 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
Nov 12 Javascript
JS 4个超级实用的小技巧 提升开发效率
Oct 05 Javascript
Vue的过滤器你真了解吗
Feb 24 Vue.js
详解使用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入门速成(2)
2006/10/09 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
详解WordPress开发中的get_post与get_posts函数使用
2016/01/04 PHP
PHP实现执行外部程序的方法详解
2017/08/17 PHP
PHP使用curl_multi实现并发请求的方法示例
2018/04/29 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
javascript管中窥豹 形参与实参浅析
2011/12/17 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
jquery更换文章内容与改变字体大小代码
2013/09/30 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
python excel转换csv代码实例
2019/08/26 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
2021/02/04 Python
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
The Body Shop美体小铺西班牙官网:天然化妆品
2019/06/21 全球购物
有关打架的检讨书
2014/01/25 职场文书
毕业生就业协议书
2014/04/11 职场文书
校园安全标语
2014/06/07 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
贷款委托书
2014/08/01 职场文书
2014年环保局工作总结
2014/12/11 职场文书
综合管理员岗位职责
2015/02/11 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
六年级数学教学反思
2016/02/16 职场文书
pytorch 如何使用float64训练
2021/05/24 Python
vue elementUI批量上传文件
2022/04/26 Vue.js
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers