我有一種情況,其中從父組件觸發的事件正在被多個子組件監聽。
e.g.
Parent Component: emit -> "orderReceived"
Child Component1( Tab1): on-> "orderReceived" -> fetch array1 from server
Child Component2( Tab2): on-> "orderReceived" -> fetch array2 from server
當這兩個選項卡都打開時,一切正常。我正在努力的是,銷毀 Tab1 上的事件偵聽器,但仍然能夠在 Tab 2 上偵聽。(當 tab1 關閉時)。現在,如果 Tab1 的偵聽器被銷毀,它也會禁用 Tab 2 上的偵聽器。
提前致謝。
uj5u.com熱心網友回復:
事件必須從正在偵聽的組件中洗掉,而不是同時從兩個組件中洗掉,您需要使用$off, 來洗掉選定的事件,而不是僅從特定組件中洗掉所有事件,而不是兩個
const ChildComponent1 = {
methods:{
orderReceived(){
//orderReceived event emit
}
},
created(){
EventBus.$on('YOURCONTENT', this.orderReceived)
},
beforeDestroy(){
EventBus.$off('YOURCONTENT', this.orderReceived)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/354991.html
標籤:javascript Vuejs2 事件处理 vue 组件 事件监听器
下一篇:如何訪問資料表頁腳的第二行
