Tengo una situación en la que, en un evento que se dispara desde el componente principal, varios componentes secundarios lo escuchan.
eg Parent Component: emit -> "orderReceived" Child Component1( Tab1): on-> "orderReceived" -> fetch array1 from server Child Component2( Tab2): on-> "orderReceived" -> fetch array2 from servercuando ambas pestañas están abiertas, todo funciona bien. Con lo que estoy luchando es con destruir los detectores de eventos en Tab1 y aún poder escuchar en Tab 2. (cuando Tab1 está cerrado). En este momento, si se destruyen los oyentes de Tab1, también se deshabilitan los oyentes en Tab 2.
Gracias por adelantado.
El evento debe eliminarse del componente que estaba escuchando, no de ambos. Debe usar $off , para simplemente eliminar el evento seleccionado, no todos los eventos del componente específico solamente, no de ambos.
const ChildComponent1 = { methods:{ orderReceived(){ //orderReceived event emit } }, created(){ EventBus.$on('YOURCONTENT', this.orderReceived) }, beforeDestroy(){ EventBus.$off('YOURCONTENT', this.orderReceived) } }