推薦一個倉庫。地址:https://github.com/tangdaohai...html
在 vue3 版本中刪除了 $on/$once/$off
API (see),不過不用擔憂,能夠使用此倉庫做爲替代方案,繼續使用 event bus 的方式來實現跨組件的通訊功能,而且不用手動去 $off 事件回調。vue
vue-happy-bus
是一款基於vue3實現的訂閱/發佈
插件。git
在 vue 中,咱們能夠使用 event bus 來實現 跨組件間通訊
。但一個弊端就是,這種方式並不會自動銷燬,因此爲了不回調函數重複執行,還要在 onUnmounted
中去移除回調函數。github
這樣帶來的冗餘代碼就是:api
$on('event name', () => {})
使用匿名函數做爲回調,由於這樣沒法銷燬事件監聽,因此通常採用 具名函數
做爲回調onUnmounted
生命週期中去銷燬事件的監聽。我只是想在某個路由中監聽下 header 中一個按鈕的點擊事件而已,居然要這麼麻煩???app
因此此輪子被造出來了 。ide
它主要解決在誇組件間通訊時
,避免重複綁定事件、沒法自動銷燬的而致使回調函數被執行屢次
的問題。函數
總得來講他是能讓你偷懶
少寫代碼的工具。工具
詳細使用文檔見此處),不過不用擔憂,能夠使用此倉庫做爲替代方案,繼續使用 event bus 的方式來實現跨組件的通訊功能,而且不用手動去 $off 事件回調。ui
vue-happy-bus
是一款基於vue3實現的訂閱/發佈
插件。
在 vue 中,咱們能夠使用 event bus 來實現 跨組件間通訊
。但一個弊端就是,這種方式並不會自動銷燬,因此爲了不回調函數重複執行,還要在 onUnmounted
中去移除回調函數。
這樣帶來的冗餘代碼就是:
$on('event name', () => {})
使用匿名函數做爲回調,由於這樣沒法銷燬事件監聽,因此通常採用 具名函數
做爲回調onUnmounted
生命週期中去銷燬事件的監聽。我只是想在某個路由中監聽下 header 中一個按鈕的點擊事件而已,居然要這麼麻煩???
因此此輪子被造出來了 。
它主要解決在誇組件間通訊時
,避免重複綁定事件、沒法自動銷燬的而致使回調函數被執行屢次
的問題。
總得來講他是能讓你偷懶
少寫代碼的工具。
詳細使用文檔見此處