当前位置: 首页 > 编程笔记 >

详解VUE 定义全局变量的几种实现方式

齐涛
2023-03-14
本文向大家介绍详解VUE 定义全局变量的几种实现方式,包括了详解VUE 定义全局变量的几种实现方式的使用技巧和注意事项,需要的朋友参考一下

最近在学习VUE.js 中间涉及到JS全局变量,与其说是VUE的全局变量,不如说是模块化JS开发的全局变量。

1、全局变量专用模块

就是以一个特定模块来组织管理这些全局量,需要引用的地方导入该模块便好。

全局变量专用模块 Global.vue

<script type="text/javascript">
const colorList = [
 '#F9F900',
 '#6FB7B7',
 '#9999CC',
 '#B766AD',
 '#B87070',
 '#FF8F59',
 '#FFAF60',
 '#FFDC35',
 '#FFFF37',
 '#B7FF4A',
 '#28FF28',
 '#1AFD9C',
 '#00FFFF',
 '#2894FF',
 '#6A6AFF',
 '#BE77FF',
 '#FF77FF',
 '#FF79BC',
 '#FF2D2D',
 '#ADADAD'
]
const colorListLength = 20
function getRandColor () {
 var tem = Math.round(Math.random() * colorListLength)
 return colorList[tem]
}
export default
{
 colorList,
 colorListLength,
 getRandColor
}
</script>

模块里的变量用export 暴露出去,当其它地方需要使用时,引入模块global便可。

需要使用全局变量的模块 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>
<style scoped type="text/css">
.projectItem
{
 margin: 5px;
 width: 200px;
 height: 120px;
 /*border:1px soild;*/
 box-shadow: 1px 1px 10px;
}
.projectItem a
{
 min-width: 200px;
}
.projectItem a span
{
 text-align: center;
 display: block;
}
</style>

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>

3、使用VUEX

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态。因此可以存放着全局量。因Vuex有点繁琐,有点杀鸡用牛刀的感觉。认为并没有必要。

链接:vuex官方介绍

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 我们这里说的全局变量,着重指的是能够全局动态响应的情况。 说到全局变量,我们首先想到的可能就是vuex,确实,这是最好的实现方式。在uni-app中,我们还可以有其他的实现方式,这里我们做一个抛砖引玉的讨论,当然,我们 推荐的,还是使用uView封装后的vuex的实现方式,它具有配置简单,使用方便的特点。 整体来说,在uni-app中,可以有如下实现全局变量的方式: 本地存储 配置文件 挂载Vue

  • 本文向大家介绍vue自定义全局共用函数详解,包括了vue自定义全局共用函数详解的使用技巧和注意事项,需要的朋友参考一下 如果你需要让一个工具函数在每个组件可用,可以把方法挂载到 Vue.prototype上。 在main.js中: 组件中调用: 以上这篇vue自定义全局共用函数详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍Python实现全局变量的两个解决方法,包括了Python实现全局变量的两个解决方法的使用技巧和注意事项,需要的朋友参考一下 本文针对Python的全局变量实现方法简述如下: 先来看下面一段测试程序: 运行结果是: 很显然,这并不是我们想要的结果。 针对这一问题的解决方法就是采用全局变量: 运行结果为: 需要注意:哪里需要全局变量,哪里声明一下;但是函数千万不要传参数,比如用Fuc(

  • 本文向大家介绍详解iOS 计步器的几种实现方式,包括了详解iOS 计步器的几种实现方式的使用技巧和注意事项,需要的朋友参考一下 这篇文章介绍两种可以获取计步数据的方法,一种是采用CMPedometer获取手机计步器数据,另一种是采用HealthKit框架从手机健康App中获取计步数据。另外玩了一下写入数据到健康App。有描述不当之处,望指点。 花絮(用HealthKit框架构建app,写入数据到苹

  • 问题内容: 在以下片段中 内部是一个新变量, 外部 将保持为空。 通过显式定义短变量定义并将其替换为赋值,似乎可以正确地初始化外部变量 有没有一种更简单的方法来指定内部变量,而不是实际上是作用域变量,而是全局变量?我在想类似的东西,但这在包本身内部无效。 问题答案: 不,就是这样。只是 New()( https://golang.org/doc/effective_go.html#allocati

  • 本文向大家介绍Python全局变量操作详解,包括了Python全局变量操作详解的使用技巧和注意事项,需要的朋友参考一下 接触Python时间不长,对有些知识点,掌握的不是很扎实,我个人比较崇尚不管学习什么东西,首先一定回去把基础打的非常扎实了,再往高处走。今天遇到了Python中的全局变量的相关操作,遇到了问题,所以,在这里将自己遇到的问题,做个记录,以长记心!!! 在Python中使用全局变量,