vue項(xiàng)目中定義全局變量察净、函數(shù)的幾種方法

前言

在項(xiàng)目中,經(jīng)常會(huì)復(fù)用一些變量和函數(shù)盼樟,比如用戶的登錄token氢卡,用戶信息等。這時(shí)將它們?cè)O(shè)為全局的就顯得很重要了晨缴,全局變量和全局函數(shù)之間有一些相通之處译秦,它們其實(shí)很簡(jiǎn)單,但是有些人可能還不太了解击碗。簡(jiǎn)單總結(jié)分享一波筑悴,希望對(duì)你有所幫助。

定義全局變量

原理:使用模塊(.js或.vue文件)來管理全局變量稍途,最后使用export暴露出去 (最好導(dǎo)出的格式為對(duì)象阁吝,方便在其他地方調(diào)用),當(dāng)其它地方需要使用時(shí)晰房,用import導(dǎo)入該模塊

1求摇、使用全局變量專用模塊射沟,掛載到main.js文件上面

全局變量模塊Global.vue定義如下:

const token='12345678';
const userStatus=false;
export default {
    token, // 用戶token身份
    userStatus // 用戶登錄狀態(tài)
}

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

使用全局變量:

import global from '../../components/Global'//引用模塊進(jìn)來
export default {
data () {
    return {
         token:global.token,//將全局變量賦值到data里面
        }
    }
}

2猖吴、全局變量模塊掛載到Vue.prototype上

Global.vue文件同上,在項(xiàng)目入口的main.js里配置:

import global from '../../components/Global'
Vue.prototype.GLOBAL = global

掛載之后挥转,在需要引用全局變量的模塊處海蔽,不需再導(dǎo)入全局變量模塊,而是直接用this就可以引用了绑谣,如下:

export default {
  data () {
    return {
     token: this.GLOBAL.token,
    }
  }
}

方法一跟方法二的主要區(qū)別是党窜,方法二全局只需要導(dǎo)入一次就可以,簡(jiǎn)單方便借宵。

3幌衣、使用vuex定義全局變量

Vuex是一個(gè)專為Vue.js應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài)。因此可以存放著全局量豁护。

// index.js文件里定義vuex
import state from './state'
export default new Vuex.Store({
  actions,
  getters,
  mutations,
  state,
})
// state.js里面存放全局變量哼凯,并且暴露出去
const state = {
  token:'12345678',
  language: 'en',
}

export default state

使用的時(shí)候,在需要引用全局變量的模塊處直接使用this.$store調(diào)用

export default {
    methods: {
      getInternation() {
        if (this.$store.state.language === 'en') {
          this.internation = 2
        } else if (this.$store.state.language === 'zh_CN') {
          this.internation = 1
        }
      }
    } 
}

因?yàn)閂uex有點(diǎn)繁瑣楚里,有點(diǎn)殺雞用牛刀的感覺断部。因此認(rèn)為并沒有必要使用它。上面只是簡(jiǎn)單的使用班缎,如果想要具體了解使用方式蝴光,可以去查閱資料具體掌握。

定義全局函數(shù)

原理:在main.js里面通過Vue.prototype將函數(shù)掛載到Vue實(shí)例上面达址,通過this.函數(shù)名虱疏,來運(yùn)行函數(shù)。

1苏携、在main.js文件直接定義方法

簡(jiǎn)單的函數(shù)可以直接寫在main.js文件里定義做瞪。

// 將方法掛載到vue原型上
Vue.prototype.changeData = function (){
  alert('執(zhí)行成功');
}

使用的時(shí)候組件里直接調(diào)用。

//直接通過this運(yùn)行函數(shù)右冻,這里this是vue實(shí)例對(duì)象
this.changeData();

2装蓬、使用全局函數(shù)專用模塊,掛載到main.js上面

base.js文件纱扭,文件位置可以放在跟main.js同一級(jí)牍帚,方便引用(這點(diǎn)可以依據(jù)個(gè)人習(xí)慣決定)。

exports.install = function (Vue, options) {
    Vue.prototype.changeData = function (){
        alert('執(zhí)行成功');
    };
};

main.js引入并使用乳蛾。

import base from './base'
Vue.use(base);

所有的組件里就可以調(diào)用該函數(shù)暗赶。

this.changeData();

結(jié)語

以上是vue中全局變量和全局函數(shù)使用的全部?jī)?nèi)容。希望總結(jié)的東西對(duì)你有所幫組肃叶。還不太了解的可以多看幾遍蹂随,大家加油!R虿选岳锁!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蹦魔,隨后出現(xiàn)的幾起案子激率,更是在濱河造成了極大的恐慌,老刑警劉巖勿决,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乒躺,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡低缩,警方通過查閱死者的電腦和手機(jī)嘉冒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人健爬,你說我怎么就攤上這事控乾。” “怎么了娜遵?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵蜕衡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我设拟,道長(zhǎng)慨仿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任纳胧,我火速辦了婚禮镰吆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘跑慕。我一直安慰自己万皿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布核行。 她就那樣靜靜地躺著牢硅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪芝雪。 梳的紋絲不亂的頭發(fā)上减余,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音惩系,去河邊找鬼位岔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛堡牡,可吹牛的內(nèi)容都是我干的抒抬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼悴侵,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼瞧剖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起可免,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎做粤,沒想到半個(gè)月后浇借,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡怕品,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年妇垢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡闯估,死狀恐怖灼舍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情涨薪,我是刑警寧澤骑素,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站刚夺,受9級(jí)特大地震影響献丑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜侠姑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一创橄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧莽红,春花似錦妥畏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至柳畔,卻和暖如春馍管,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背薪韩。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工确沸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人俘陷。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓罗捎,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親拉盾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子桨菜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344