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 相关文章推荐
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
Mar 06 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
Jul 03 Javascript
javascript使用eval或者new Function进行语法检查
Oct 16 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
Mar 30 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
May 25 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
Oct 10 Javascript
详解前端自动化工具gulp自动添加版本号
Dec 20 Javascript
jQuery.Form上传文件操作
Feb 05 Javascript
Vue指令的钩子函数使用方法
Mar 20 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
Aug 01 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
Sep 10 Javascript
微信小程序实现简单文字跑马灯
May 26 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常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
php简单判断文本编码的方法
2015/07/30 PHP
PHP中类的继承和用法实例分析
2016/05/24 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
2019/05/27 PHP
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
jquery 学习笔记一
2010/04/07 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
JavaScript实现三级联动菜单效果
2017/08/16 Javascript
JS代码实现电脑配置检测功能
2018/03/21 Javascript
详解Vue.js在页面加载时执行某个方法
2018/11/20 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
js实现简单的打印表格
2020/01/15 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
Python实现优先级队列结构的方法详解
2016/06/02 Python
python将ansible配置转为json格式实例代码
2017/05/15 Python
Python字符串拼接六种方法介绍
2017/12/18 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
一些网络技术方面的面试题
2014/05/01 面试题
实习教师自我鉴定
2013/09/27 职场文书
三年级语文教学反思
2014/02/01 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
出租房屋协议书
2014/09/14 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
python实现手机推送 代码也就10行左右
2022/04/12 Python