Emitir evento a App.vue


#1

Buenas tardes, estoy desarrollando un dashboard y en la cabecera tengo un sistema de notificaciones que me gustaría ir actualizando cada vez que cambio de pantalla. Estoy usando el router-view por lo que no se me actualiza la pagina. He pensado en obtener el total de notificaciones en el created del componente y enviarle un evento al padre “App.Vue” que es donde se carga el router-view y el componente donde tengo el header para que este actualice las notificaciones. He probado de la misma forma que cuando me comunico entre componentes hijos y padres “this.$emit(‘actualizarNoty’, response.data.notificaciones);” pero el inspector me indica que no conoce $emit.
¿Como puedo resolverlo? Se os ocurre otro sistema para actualizar el modulo de notificaciones de otro modo? ¿Se podría acceder al data del header donde controlo el total de notificaciones como si se tratará un data del mismo componente? algo así this.totalNotificaciones = response.data.notificaciones;

Un saludo y gracias de antemano.


#2

En el compnente de las notificaciones añade un watch al this.$route, el callback sera ejecutado cada vez que la ruta cambie.

watch: {
  '$route' () {
    console.log('cambio')
  }
}

#3

Perfecto, muchisimas gracias.