Auf meiner Hauptseite habe ich Dropdowns, die v-show=show
durch Klicken auf den Link angezeigt werden, @click = "show=!show"
und ich möchte festlegen, show=false
wann ich die Route ändere. Raten Sie mir bitte, wie Sie dieses Ding realisieren können.
vue.js
vuejs2
vue-router
Kipris
quelle
quelle
$route: function(to, from) {
Sie diese Option, wenn Sie ältere Browser unterstützen möchten und babel nicht verwenden.Wenn Sie v2.2.0 verwenden, steht eine weitere Option zur Verfügung, um Änderungen in $ route zu erkennen.
Um auf Parameteränderungen in derselben Komponente zu reagieren, können Sie einfach das $ route-Objekt beobachten:
Oder verwenden Sie den in 2.2 eingeführten beforeRouteUpdate-Schutz:
Referenz: https://router.vuejs.org/en/essentials/dynamic-matching.html
quelle
beforeRouteUpdate
funktioniert nur in der Ansicht, die die Methode deklariert, und nicht in einerNur für den Fall, dass jemand nach einer Möglichkeit sucht, dies in Typoskript zu tun, ist hier die Lösung
Und ja, wie von @Coops unten erwähnt, vergessen Sie bitte nicht, dies anzugeben
Bearbeiten: Alcalyn legte großen Wert darauf, den Routentyp anstelle eines beliebigen zu verwenden
quelle
import { Prop, Watch } from "vue-property-decorator";
any
Typ zu verwenden, möchten Sie möglicherweise auch die SchnittstelleRoute
vonimport { Route } from 'vue-router';
Die obigen Antworten sind die besseren, aber der Vollständigkeit halber können Sie in einer Komponente auf das Verlaufsobjekt im VueRouter zugreifen mit: this. $ Router.history. Das heißt, wir können Veränderungen anhören mit:
this.$router.listen((newLocation) =>{console.log(newLocation);})
Ich denke, dies ist hauptsächlich nützlich, wenn es zusammen mit diesem verwendet wird. $ Router.currentRoute.path Sie können überprüfen, wovon ich spreche, wenn Sie ein platzieren
debugger
Anweisungen in Ihrem Code und beginnen Sie mit der Chrome DevTools Console zu spielen.
quelle
Beobachter mit der tiefen Option hat bei mir nicht funktioniert.
Stattdessen verwende ich einen aktualisierten () Lebenszyklus-Hook, der jedes Mal ausgeführt wird, wenn sich die Daten der Komponente ändern. Verwenden Sie es einfach wie bei mount () .
Weitere Informationen finden Sie in der Dokumentation .
quelle
Eine weitere Lösung für Typoskript-Benutzer:
quelle