在vue專案中,父子元件間的通訊很方便。但兄弟元件或多層巢狀元件間的通訊,就會比較麻煩。這時,使用eventbus通訊,就可以很便捷的解決這個問題。
eventbus可以在全域性定義,實現全專案通訊,使用方法也很簡單。
1、初始化——全域性定義
全域性定義,可以將eventbus繫結到vue例項的原型上,也可以直接繫結到window物件上.
//方式一
vue.prototype.$eventbus = new vue();
//方式二
window.eventbus = new vue();
2、觸發事件
//使用方式一定義時
this.$eventbus.$emit('eventname', param1,param2,...)
//使用方式二定義時
eventbus.$emit('eventname', param1,param2,...)
3、監聽事件
//使用方式一定義時
this.$eventbus.$on('eventname', (param1,param2,...)=>)
//使用方式二定義時
eventbus.$on('eventname', (param1,param2,...)=>)
4、移除監聽事件
為了避免在監聽時,事件被反覆觸發,通常需要在頁面銷毀時移除事件監聽。或者在開發過程中,由於熱更新,事件可能會被多次繫結監聽,這時也需要移除事件監聽。
//使用方式一定義時
this.$eventbus.$off('eventname');
//使用方式二定義時
eventbus.$off('eventname');
vue中EventBus的使用
第一步 建立乙個bus.js檔案,建立bus import vue from vue const bus new vue export default bus第二步 在需要互相通訊的元件中引入bus.js檔案 a b元件 import bus from utils bus.js 第三步 元件a中呼叫...
vue中eventBus的使用
eventbus是用於元件間通訊的一種方法,我們都知道在vue中資料流是單向的,那麼非父子元件間的傳值自然值得我們注意 一種是我們都很熟悉的vuex 它可以通過倉庫溝通我們所有元件間的通訊 而另外還存在一種叫做eventbus的方法 使用場景如 兄弟元件間的通訊,父元件fathercom中同時使用到...
nodeType屬性在vue原始碼中的使用
每個節點都有乙個 nodetype 屬性,用於表明節點的型別,節點型別由node型別中定義12個常量表示 nodetype在vue中的應用 在vue編譯的過程中需要查詢html結構中的雙大括號,或者 事件等代表vue中的資料及方法的屬性值,通過編譯將查詢到的部分使用vue例項中的屬性或方法替換 cl...