溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

VUE 全局變量的幾種實(shí)現(xiàn)方式

發(fā)布時(shí)間:2020-10-19 15:30:43 來源:腳本之家 閱讀:141 作者:夏有喬木 欄目:web開發(fā)

1、全局變量專用模塊

意思是說,用一個(gè)模塊(js or vue)管理這套全局變量,模塊里的變量用export (最好導(dǎo)出的格式為對象,方便在其他地方調(diào)用)暴露出去,當(dāng)其它地方需要使用時(shí),用import 導(dǎo)入該模塊

全局變量專用模塊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
}

模塊里的變量用出口暴露出去,當(dāng)其它地方需要使用時(shí),引入模塊全球便可。

需要使用全局變量的模塊html5.vue

<template>
 <ul>
  <template v-for="item in mainList">
   <div class="projectItem" :>
     <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_

掛載之后,在需要引用全局量的模塊處,不需再導(dǎo)入全局量模塊,直接用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的區(qū)別在于:2不用在用到的時(shí)候必須按需導(dǎo)入全局模塊文件

3、vuex

Vuex是一個(gè)專為Vue.js應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài)。因此可以存放著全局量。因?yàn)閂uex有點(diǎn)繁瑣,有點(diǎn)殺雞用牛刀的感覺。認(rèn)為并沒有必要。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI