vue 事件匯流排 eventBus

2021-10-08 02:37:30 字數 1479 閱讀 8565

父元件向子元件傳遞引數用v-bind

子元件向父元件傳遞引數用this.$emit

兄弟元件傳參eventbus或者是用vuex進行傳遞

下邊說說eventbus

首先在src的assets的目錄下新建乙個vue-bus.js檔案

import vue from

'vue'

export

default

newvue

()

兄弟元件

a元件

import bus from

'@/assets/js/vue-bus.js'

methods:

}

b元件

import bus from

'@/assets/js/vue-bus.js'

created()

)}

可以有多個兄弟元件通訊 通過接收的名字

eventbus使用不善,會造成災難。vue是單頁應用,如果你在某乙個頁面重新整理了之後,與之相關的eventbus會被移除,這樣就導致業務走不下去。還要就是如果業務有反覆操作的頁面,eventbus在監聽的時候就會觸發很多次,也是乙個非常大的隱患。這時候我們就需要好好處理eventbus在專案中的關係。通常會用到,在vue頁面銷毀時,同時移除eventbus事件監聽。

eventbus.

$off

('amsg'

,)

它們的工作原理是發布/訂閱方法,通常稱為pub/sub

var eventbus =

newvue()

;object.

defineproperties

(vue.prototype,}}

)

在這個特定的匯流排中使用兩個方法 $on和$emit。乙個用於建立發出的事件,它就是$emit;另乙個用於訂閱$on:

var eventbus =

newvue()

;this

.$bus.

$emit

('nameofevent',)

;this

.$bus.

$on(

'nameofevent'

,($event)

=>

)

然後我們可以在某個vue頁面使用this.$bus.$emit(「sendmsg」, 『我是web秀』);,另乙個vue頁面使用

this

.$bus.

$on(

'updatemessage'

,function

(value)

)

同時也可以使用this.$bus.$off(『sendmsg』)來移除事件監聽。

Vue事件匯流排(EventBus)

參考 問題背景 vue中除父子元件通訊外,任意兩個元件間的通訊問題。解決方案 1.使用vuex,共享乙個狀態,通過修改和監聽這個狀態實現元件通訊。2.事件匯流排。思路 根據vue.js文件,vm.on vm.off都是其實例方法,因此我們需要乙個vue例項作為事件匯流排物件。使用方式 第一種 將事件...

事件匯流排 EventBus

在非父子元件需要進行通訊的時候,除了vuex之外,還有就是事件匯流排了 eventbus 又稱為事件匯流排。在vue中可以使用 eventbus 來作為溝通橋梁的概念,就像是所有元件共用相同的事件中心,可以向該中心註冊傳送事件或接收事件,所以元件都可以上下平行地通知其他元件,但也就是太方便所以若使用...

EventBus 發布 訂閱事件匯流排

eventbus是一款針對android優化的發布 訂閱事件匯流排。執行緒之間傳遞訊息 1.開銷小,幾行 就可以實現。2.傳送者和接收者解耦。示例 1.先自定義乙個訊息傳輸類 public class msgtype 2.使用時進行註冊 eventbus.register this 3.傳送需要傳輸...