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 相关文章推荐
图片完美缩放
Sep 07 Javascript
IE8 原生JSON支持
Apr 13 Javascript
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
May 06 Javascript
用js传递value默认值的示例代码
Sep 11 Javascript
JavaScript中Function函数与Object对象的关系
Dec 17 Javascript
浅谈jQuery为哪般去掉了浏览器检测
Aug 29 Javascript
vue 中自定义指令改变data中的值
Jun 02 Javascript
关于vue.extend和vue.component的区别浅析
Aug 16 Javascript
微信小程序实现YDUI的ScrollNav组件
Feb 02 Javascript
解决jQuery使用append添加的元素事件无效的问题
Aug 30 jQuery
详解Element 指令clickoutside源码分析
Feb 15 Javascript
Seajs源码详解分析
Apr 02 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类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
php实现每日签到功能
2018/11/29 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
jquery中的事件处理详细介绍
2013/06/24 Javascript
jquery网页元素拖拽插件效果及实现
2013/08/05 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
2014/12/29 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
微信小程序 定位到当前城市实现实例代码
2017/02/23 Javascript
Mongoose中document与object的区别示例详解
2017/09/18 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
Python中的日期时间处理详解
2016/11/17 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
python实现Floyd算法
2018/01/03 Python
python中cPickle类使用方法详解
2018/08/27 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
Django静态文件加载失败解决方案
2020/08/26 Python
Django Form常用功能及代码示例
2020/10/13 Python
Under Armour安德玛意大利官网:美国高端运动科技品牌
2020/01/16 全球购物
Shopping happy life西班牙:以最优惠的价格提供最好的时尚配饰
2020/03/13 全球购物
Android interview questions
2016/12/25 面试题
高级护理专业毕业生推荐信
2013/12/25 职场文书
称象教学反思
2014/02/03 职场文书
代理协议书
2014/04/22 职场文书
电子专业求职信
2014/06/19 职场文书
优秀教师推荐材料
2014/12/16 职场文书
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL