一個eventBus

vue實現(xiàn)一個eventBus

eventBus應(yīng)該有些聽過鲫忍,其實就是一個事件發(fā)布訂閱的功能。vue提供了實例方法事件煌寇,就是on逾雄、once腻脏、off永品、emit击纬。

在mainjs里面在vue原型上面掛載一個變量:

Vue.prototype.$eventBus = new Vue();

我在home頁面注冊了一個事件:

this.eventBus.on('home', (msg) => { console.log('home:' + msg);})

這個事件名字就是一個key,發(fā)布的時候需要用到炕桨。

接著我在另外一個頁面live進行發(fā)布:

this.eventBus.emit('home', '這是live emit')

發(fā)布訂閱要有個先后順序肯腕,一定要先訂閱,發(fā)布才會觸發(fā)姊途,比如父組件mounted里面注冊知态,子組件觸發(fā),但是子組件生命周期先執(zhí)行寂殉,父組件也不會觸發(fā)原在。你先進入home進行訂閱彤叉,接著切換到live,控制臺輸出:

home:這是live emit

如果我在back頁面也注冊一個home事件:

this.eventBus.on('home', (msg) => { console.log('back:' + msg);})

然后切換頁面浮庐,每一個事件名為home的都會執(zhí)行:

home:這是live emit

back:這是live emit

而且會嚴(yán)格按照注冊順序執(zhí)行审残。

要注意的是,進入頁面就注冊事件搅轿,那么你每進入一次就會注冊一次富玷,就是說我在home和back來回切換幾次既穆,就會注冊幾次幻工,然后跳轉(zhuǎn)live頁面就會同時執(zhí)行:

home:這是live emit

back:這是live emit

home:這是live emit

back:這是live emit

在一定的業(yè)務(wù)邏輯上面黎茎,我們?nèi)绻恍枰褂媚硞€事件,最好移除:

this.eventBus.off('home');

要注意踢代,這個方法會把所有注冊的home事件移除俭正,不管注冊幾次。包括$once事件也會移除串远。

$once事件是只執(zhí)行一次儿惫,相當(dāng)于執(zhí)行完之后執(zhí)行off事件。

通過vue提供的api肾请,很容易實現(xiàn)一個事件的發(fā)布訂閱,基本的on隔显、off饵逐、once、emit都很容易就實現(xiàn)了掷豺。在某些邏輯下還能當(dāng)作組件間傳遞數(shù)據(jù)來使用薄声。之后應(yīng)該會分享自己去實現(xiàn)這樣一個api。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末德频,一起剝皮案震驚了整個濱河市缩幸,隨后出現(xiàn)的幾起案子档叔,更是在濱河造成了極大的恐慌衙四,老刑警劉巖患亿,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異步藕,居然都是意外死亡,警方通過查閱死者的電腦和手機沾歪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門灾搏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來立润,“玉大人,你說我怎么就攤上這事泉哈。” “怎么了丛晦?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵烫沙,是天一觀的道長搁骑。 經(jīng)常有香客問我仲器,道長,這世上最難降的妖魔是什么乏冀? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任辆沦,我火速辦了婚禮,結(jié)果婚禮上肢扯,老公的妹妹穿的比我還像新娘。我一直安慰自己蔚晨,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布银择。 她就那樣靜靜地躺著浩考,像睡著了一般。 火紅的嫁衣襯著肌膚如雪析孽。 梳的紋絲不亂的頭發(fā)上害捕,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天尝盼,我揣著相機與錄音,去河邊找鬼盾沫。 笑死,一個胖子當(dāng)著我的面吹牛佩捞,可吹牛的內(nèi)容都是我干的蕾哟。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼帘营,長吁一口氣:“原來是場噩夢啊……” “哼逐哈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起昂秃,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎算途,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體郊艘,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡纱注,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年狞贱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞎嬉。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖沐兵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情扎谎,我是刑警寧澤烧董,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布逊移,位于F島的核電站预吆,受9級特大地震影響拐叉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜凤瘦,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一钳吟、第九天 我趴在偏房一處隱蔽的房頂上張望窘拯。 院中可真熱鬧坝茎,春花似錦、人聲如沸嗤放。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽岳服。三九已至,卻和暖如春吊宋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背璃搜。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工这吻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留篙议,地道東北人唾糯。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓趾断,卻偏偏與公主長得像吩愧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子雁佳,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容