Lastor
coding 體會到 eventBus 這機制,有多難追了,很大原因是跟現在前端主流的 props 傳遞機制不一樣,就得花時間去看這段是怎麼跑的......
Lastor
eventBus 是原本 Vue2 有的一種機制,原理上其實就是跨組件的事件監聽器
Lastor
Vue3 把這個功能拿掉了,如果還是想要用,可以安裝一些 for 瀏覽器的,類似 Node.js 的 EventEmitter 的套件
Lastor
但這種事件監聽器,emit 之後,在所有地方都可以用 on 監聽
Lastor
所以光看到 on or emit,根本無法知道到底是從哪傳來的,或是會傳去哪
Lastor
只能靠 VScode 去搜尋 event name 才找得到
Lastor
而且這玩意,會跟 dev server 的熱更新有點衝突,每次熱更新 update 都會重複掛監聽,導致效能被消耗殆盡
Lastor
還要為這個去弄 clear 監聽器,會寫得很煩
Lastor
這類機制雖然有時候會比 props 傳遞要方便非常多,但是代價也不小
Lastor
除非真的沒辦法,不然還是少用比較好
Lastor
話說,Vue3 理論上可以用 reactive() 裡面塞 function,局部共用來實現類似的功能就是。而這個可以從 import 那邊去得知來源,應該會比較好維護
Lastor
雖然我沒嘗試過就是,搞不好實驗下去會有其他問題也不一定
l• ܫ•) Davyキュルッ
可以自己寫一個 event bus 不難
載入新的回覆