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继承的实现
Oct 24 Javascript
js停止输出代码
Jul 20 Javascript
javascript权威指南 学习笔记之变量作用域分享
Sep 28 Javascript
location对象的属性和方法应用(解析URL)
Apr 12 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
Jul 18 Javascript
JS格式化数字保留两位小数点示例代码
Oct 15 Javascript
实例讲解js验证表单项是否为空的方法
Jan 09 Javascript
利用JavaScript实现拖拽改变元素大小
Dec 14 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
Mar 09 Javascript
vue中mint-ui环境搭建详细介绍
Apr 06 Javascript
JavaScript享元模式原理与用法实例详解
Mar 09 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
Aug 12 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
如何过滤高亮显示非法字符
2006/10/09 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
Laravel 集成 Geetest验证码的方法
2018/05/14 PHP
FireFox JavaScript全局Event对象
2009/06/14 Javascript
浅谈javascript的数据类型检测
2010/07/10 Javascript
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
浅析JavaScript基本类型与引用类型
2014/05/28 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
关于javascript事件响应的基础语法总结(必看篇)
2016/12/26 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
layui下拉框获取下拉值(select)的例子
2019/09/10 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
centos 下面安装python2.7 +pip +mysqld
2014/11/18 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
Python3列表List入门知识附实例
2020/02/09 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
3分钟英语演讲稿
2014/04/29 职场文书
会展策划与管理专业求职信
2014/06/09 职场文书
大学英语专业求职信
2014/06/21 职场文书
暑期学习心得体会
2014/09/02 职场文书
个人廉政承诺书
2015/04/28 职场文书
JVM之方法返回地址详解
2022/02/28 Java/Android