English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Síntoma
Al cargar el primer componente (aquí el primer significado es el primer componente en el historial del navegador, denominado componente que se está escuchando en el texto posterior), se puede activar el evento beforeRouteLeave al hacer clic en otros componentes, pero no se puede escuchar el evento al hacer clic en el botón de retroceso del navegador.
Solución
Actualmente se utiliza una solución bastante rústica e inútil. Se agrega una capa de componente y luego se hace router.push al componente que se está escuchando, haciendo que el componente que se está escuchando no sea el primer componente, lo que permite que se pueda escuchar el evento beforeRouteLeave de manera normal.
Puntos a tener en cuenta:
Dado que se ha desordenado la ruta original, se debe agregar una escucha de rutas global en main.js
router.beforeEach((to, from, next) => { if (to es 'componente para saltar' && from es 'componente que se está escuchando') { router.go(-1) next(false) } next() } // De esta manera, cuando se ingresa a un componente que se está escuchando desde una página común A, se puede ingresar a A presionando el botón de retroceso }
Resumen
Lo que se menciona anteriormente es lo que el editor les ha presentado para resolver el problema de que el evento beforeRouteLeave no se puede activar al hacer clic en el botón de retroceso del navegador, esperamos que les sea útil!