vue event-bus使用方法及注意事項(xiàng)

event-bus使用方法

1.定義event-bus組件實(shí)例

import Vue from 'vue'
export const EventBus = new Vue()

2.定義兩個(gè)組件A、組件B,分別設(shè)置EventBus.emit以及EventBus.on、 EventBus.$off
組件A

<template>
  <div class="boats">
    我是駕駛艙
    <el-button @click="release">發(fā)布消息</el-button>
  </div>
</template>

<script>
import { EventBus } from '@/plugins/event-bus'
export default {
  methods: {
    release() {
      // 這個(gè)是對在頁面上的已展示組件的發(fā)布影響
      EventBus.$emit('platform1', 'wangwu')
    }
  },
  destroyed() {
    // 這個(gè)是對組件B(暫時(shí)未展示組件)起作用的發(fā)布影響
    EventBus.$emit('platform1', 'wangwu1')
  }
}
</script>

<style scoped></style>

組件B

<template>
  <div class="data-analyse">我是數(shù)據(jù)分析{{ name }}</div>
</template>

<script>
import { EventBus } from '@/plugins/event-bus'
export default {
  data() {
    return {
      name: ''
    }
  },
  created() {
    const _this = this
    EventBus.$on('platform1', function (res) {
      _this.name = res
    })
  },
  destroyed() {
    EventBus.$off('platform1')
  }
}
</script>

<style scoped></style>

event-bus使用注意事項(xiàng)

event-bus的核心是發(fā)布訂閱模式,要求訂閱者要能獲取到發(fā)布的信息,必須在發(fā)布前已經(jīng)注冊,否則無法獲取到發(fā)布的信息
event-bus在vue中的使用分兩種情況,具體為:

1.組件A、組件B同時(shí)展示頁面,這時(shí)可以通過寫在methods中的事件發(fā)布信息,訂閱組件B通過寫在created中訂閱收到信息。
2.需先關(guān)閉組件A再打開組件B,組件B獲得信息,這時(shí)需要注意的是vue組件銷毀與生成的生命周期,即先創(chuàng)建組件B,在mouted前destroy組件A, 這是可以通過寫在destroy中發(fā)布信息,訂閱組件B通過寫在created中收到信息。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容