參考:
問題背景:vue中除父子元件通訊外,任意兩個元件間的通訊問題。
解決方案:1.使用vuex,共享乙個狀態,通過修改和監聽這個狀態實現元件通訊。
2.事件匯流排。
思路:根據vue.js文件,vm.$on、vm.$off都是其實例方法,因此我們需要乙個vue例項作為事件匯流排物件。
使用方式:
第一種:將事件匯流排物件繫結在應用根示例的data屬性上
① 事件匯流排的繫結
newvue(,
data:
});
② 事件匯流排的使用
adddraguploadlistener () )},adduploadfinishlistener () )
},removeuploadfinishlistener () ,
第二種:將事件匯流排物件繫結到vue原型上
① 繫結
//main.js
vue.prototype.$eventbus = new vue()
或
var eventbus = newvue();
object.defineproperties(vue.prototype,
}
② 使用
this.$bus.$emit('nameofevent', );this.$bus.$on('nameofevent',($event) =>)
第三種:定義事件匯流排,只在需要的元件中引入
注意點:此方式引用,需要在元件銷毀時移除繫結的監聽事件
① 新建立乙個 .js 檔案,比如event-bus.js
//event-bus.js
import vue from 'vue'export const eventbus = new vue()
② 使用
-
綜上,以上三種方式均可實現需求,個人傾向於前兩種。
vue 事件匯流排 eventBus
父元件向子元件傳遞引數用v bind 子元件向父元件傳遞引數用this.emit 兄弟元件傳參eventbus或者是用vuex進行傳遞 下邊說說eventbus 首先在src的assets的目錄下新建乙個vue bus.js檔案 import vue from vue export default ...
事件匯流排 EventBus
在非父子元件需要進行通訊的時候,除了vuex之外,還有就是事件匯流排了 eventbus 又稱為事件匯流排。在vue中可以使用 eventbus 來作為溝通橋梁的概念,就像是所有元件共用相同的事件中心,可以向該中心註冊傳送事件或接收事件,所以元件都可以上下平行地通知其他元件,但也就是太方便所以若使用...
EventBus 發布 訂閱事件匯流排
eventbus是一款針對android優化的發布 訂閱事件匯流排。執行緒之間傳遞訊息 1.開銷小,幾行 就可以實現。2.傳送者和接收者解耦。示例 1.先自定義乙個訊息傳輸類 public class msgtype 2.使用時進行註冊 eventbus.register this 3.傳送需要傳輸...