Konzept: „Navigation“ bedeutet, dass sich die Route ändert Der vom Navigationswächter : einschließlich globaler Navigationswächter und lokaler Navigationswächter 1. Globale Wachevue-router hat drei globale Wächter
1. Globale FrontwacheSie können einen globalen Before Guard mit router.beforeEach registrieren: const router = neuer VueRouter({ ... }) router.beforeEach((bis, von, weiter) => { // to und from sind beides Routing-Instanzen // to: die Route, zu der gesprungen wird // from: die aktuelle Route, die verlassen wird // next: Funktion })
Lassen Sie ihn irgendwann gehen, sonst wird er den Zyklus immer wieder wiederholen. 2. Globaler Abwicklungswächter2.5.0 Neu // Globaler Auflösungsschutz router.beforeResolve((to,from.next) => { }) In 2.5.0+ können Sie einen globalen Schutz mit Resolve Guards werden aufgerufen, bevor die Navigation bestätigt wird und nachdem alle Component Guards und asynchronen Routenkomponenten aufgelöst wurden. 3. Globaler Post-HookMan kann auch globale After-Hooks registrieren, allerdings erhalten diese Hooks im Gegensatz zu Guards keine Next-Funktion und verändern nicht die Navigation selbst: // Globaler Post-Hook router.afterEach((to,form) => { })
3. Router-exklusiver SchutzWenn Sie das Routing nicht global konfigurieren möchten, können Sie Guards für bestimmte Routen separat konfigurieren. Beispiel: Konfigurieren Sie einen separaten Schutz für { Pfad: '/Hauptseite', Name: 'Über', Komponente: Über, // Routing exklusiver Schutz beforeEnter:(to,from,next) => { if(from.name === '/mainpage/about'){ alert("Das ist von about") }anders{ alert("Das ist nicht von about") }next(); // Muss aufgerufen werden, um den nächsten Schritt auszuführen. Sonst wird es nicht springen.} } }, 4. Schutzvorrichtungen innerhalb von KomponentenSchließlich können Sie die folgenden Routennavigationsschutzfunktionen direkt in Ihrer Routenkomponente definieren:
Nehmen Sie ein Beispiel im Produkt: // Globaler Auflösungsschutz router.beforeResolve((to,from.next) => { }) // Globaler Post-Hook router.afterEach((to,form) => { }) { Pfad: '/Hauptseite', Name: 'Über', Komponente: Über, // Exklusiver Routing-Schutz beforeEnter:(to,from,ext) => { if (from.name === '/hauptseite/über') { alert("Das ist von ungefähr") }anders{ alert("Das ist nicht von about") } next(); // Muss aufgerufen werden, um den nächsten Vorgang auszuführen. Sonst wird es nicht springen.} } }, Standard exportieren { // Die Bedingung für das Auslösen des internen Guards beforeRouteUpdate der Komponente ist: Die aktuelle Route ändert sich, aber die Komponente wird wiederverwendet. Beispielsweise wird für die Route von Produkt/Bestellungen zu Produkt/Warenkorb die Komponente Product.vue erneut verwendet und „beforeRouteUpdate“ wird ausgelöst. Sie können diese Instanz erhalten. Ein vollständiger Navigationsanalyseprozess // Da die Komponenteninstanz beim Aufruf dieses Hooks noch nicht erstellt wurde, kann dies nicht abgerufen werden. beforeRouteEnter (nach, von, weiter) { Konsole.log(zu.Name); // Wenn Sie die Instanz abrufen möchten // next(vm=>{ // // Die VM hier ist die Instanz der Komponente (diese) // }); nächste(); }, vorRouteUpdate(nach,von,weiter){ console.log(nach.Name, von.Name); nächste(); }, // Diese Methode wird aufgerufen, wenn die Route gerade verlassen wird // Beispiel: Der Benutzer hat etwas bearbeitet, aber noch nicht gespeichert. Zu diesem Zeitpunkt möchte er diese Seite verlassen, daher müssen wir ihn daran erinnern, dass er es noch nicht gespeichert hat, und ihn fragen, ob er gehen möchte beforeRouteLeave (to, from, next) { const leave = confirm("Sind Sie sicher, dass Sie gehen möchten?"); if(leave) next() // verlassen sonst next(false) // nicht verlassen }, }
5. Ein vollständiger Navigationsanalyseprozess
Dies ist das Ende dieses Artikels zum schnellen Verständnis von Vue-Routing-Navigationswächtern. Weitere relevante Inhalte zu Vue-Routing-Navigationswächtern finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: So optimieren Sie die langsame Like-Fuzzy-Abfrage in MySQL
>>: Verstehen Sie den aktuellen Status der HTML5-Entwicklung in der mobilen Entwicklung genau
Der zu erzielende Effekt In vielen Fällen überwac...
In diesem Artikelbeispiel wird der spezifische Co...
Upgrade der Linux-Version: 1. Stellen Sie zunächs...
Inhaltsverzeichnis Die wichtigsten gelösten Probl...
1. Installation der dekomprimierten Version (1). ...
Melden Sie sich bei Ihrem Konto an export DOCKER_...
1. Installation der RPM-Version Überprüfen Sie, o...
Inhaltsverzeichnis Vorwort 1. Art von 2. Instanz ...
Wenn es eine Tabelle mit einem Feld „add_time“ gi...
Da die Kosten für die Erstellung von HTTPS-Websit...
Nach einem abnormalen Herunterfahren von VMware w...
x-ua-compatible wird verwendet, um das Modell für...
Installation und Konfiguration von MySQL8.0.22 (s...
Flex(彈性布局) in CSS kann das Layout einer Webseite ...
Inhaltsverzeichnis 1.DB, DBMS, SQL 2. Eigenschaft...