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实现动态省市县三级联动下拉框菜单实例代码
Feb 03 Javascript
JavaScript数组方法总结分析
May 06 Javascript
jQuery图片渐变特效的简单实现
Jun 25 Javascript
jquery实现全选、不选、反选的两种方法
Sep 06 Javascript
简单的js表格操作
Sep 24 Javascript
EasyUI Combobox设置默认值 获取text的方法
Nov 28 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
Aug 17 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
Mar 01 Javascript
vue基于mint-ui实现城市选择三级联动
Jun 30 Javascript
详解react-redux插件入门
Apr 19 Javascript
React路由管理之React Router总结
May 10 Javascript
JavaScript实现选项卡效果的分析及步骤
Apr 16 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下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
php计算一个文件大小的方法
2015/03/30 PHP
PHP chop()函数讲解
2019/02/11 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
JavaScript中的对象化编程
2008/01/16 Javascript
JavaScript中的fontsize()方法使用详解
2015/06/08 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
react实现同页面三级跳转路由布局
2019/09/26 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
Python原始字符串(raw strings)用法实例
2014/10/13 Python
RC4文件加密的python实现方法
2015/06/30 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
2018/02/23 Python
python定向爬取淘宝商品价格
2018/02/27 Python
pytz格式化北京时间多出6分钟问题的解决方法
2019/06/21 Python
python绘制BA无标度网络示例代码
2019/11/21 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
python2.7使用scapy发送syn实例
2020/05/05 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
请介绍一下WSDL的文档结构
2013/03/17 面试题
《湘夫人》教学反思
2014/02/21 职场文书
文明之星事迹材料
2014/05/09 职场文书
2014领导班子四风问题查摆思想汇报
2014/09/13 职场文书
营销总监岗位职责
2014/09/16 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
大二学年个人总结
2015/03/03 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js