English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Risoluzione del problema di non essere in grado di attivare beforeRouteLeave quando si va indietro nel browser Vue

Sintomo

Quando si carica il primo componente (qui il primo significa il primo nella cronologia del browser, chiamato componente da monitorare), saltare a altre pagine può attivare l'evento beforeRouteLeave. Ma non si può monitorare l'evento quando si preme il pulsante indietro del browser

Soluzione

Al momento si utilizza una soluzione piuttosto rustica e non pratica. Aggiungere un livello di componente, poi router.push al componente da monitorare, in modo che il componente da monitorare non sia il primo componente, può monitorare normalmente l'evento beforeRouteLeave

Punti di attenzione:

Poiché è stato disturbato il percorso originale, è necessario aggiungere una sorveglianza di percorso globale in main.js

router.beforeEach((to, from, next) => {
 if (to è 'componente per il salto' && from è 'componente da monitorare') {
  router.go(-1) 
  next(false)
 } else {
  next()
 }
 // Così quando si entra nel componente da monitorare da una pagina normale A, quando si preme il pulsante indietro nel componente da monitorare si può entrare in A normalmente
)

Sommario

Come risolvere il problema di non essere in grado di attivare l'evento beforeRouteLeave quando si usa il pulsante indietro del browser per Vue - Spero che questo aiuti!

Ti potrebbe interessare