欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

VUE 全局变量的几种实现方式

程序员文章站 2022-06-23 12:10:07
1、全局变量专用模块 意思是说,用一个模块(js or vue)管理这套全局变量,模块里的变量用export (最好导出的格式为对象,方便在其他地方调用)暴露出去,当...

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有点繁琐,有点杀鸡用牛刀的感觉。认为并没有必要。

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