Vuejs: Manifestation sur la voie du changement
Dans ma page principale, j'ai des listes déroulantes qui montrent v-show=show
en cliquant sur le lien ci - @click = "show=!show"
et je veux mettre show=false
quand je change de route. Conseillez-moi s'il vous plaît comment réaliser cette chose.
Vous devez vous connecter pour publier un commentaire.
Installation d'un watcher sur le
$route
dans votre composant comme ceci:Cette observation pour les changements de route et une fois modifiées ,jeux de
show
de faux$route: function(to, from) {
si vous souhaitez soutenir les anciens navigateurs, et ne sont pas à l'aide de babel.Si vous utilisez v2.2.0 alors il existe une option de plus disponibles pour détecter des changements dans $routes.
De réagir à params changements dans le même composant, vous pouvez tout simplement regarder les $objet route:
Ou, utilisez la beforeRouteUpdate garde introduit en 2.2:
Référence: https://router.vuejs.org/en/essentials/dynamic-matching.html
beforeRouteUpdate
ne fonctionne que sur la vue qui déclare la méthode et non pas sur n'importe quel composant enfantJuste au cas ou si quelqu'un est à la recherche pour savoir comment faire en caractères d'imprimerie voici la solution
Les réponses ci-dessus sont la meilleure, mais juste pour être complet, lorsque vous êtes dans un composant, vous pouvez accéder à l'historique de l'objet à l'intérieur de la VueRouter avec:
c'.$routeur.l'histoire.
Cela signifie que nous pouvons écouter des changements avec:
this.$router.listen((newLocation) =>{console.log(newLocation);})
Je pense que c'est surtout utile lorsqu'il est utilisé avec cela.$routeur.currentRoute.chemin
Vous pouvez vérifier ce que je suis en train de parler de placer un
debugger
instruction dans votre code et commencer à jouer avec le Chrome DevTools de la Console.
Watcher avec la profonde option ne fonctionne pas pour moi.
Au lieu de cela, j'utilise mise à jour() cycle de vie de crochet qui est exécuté à chaque fois que le composant est des modifications de données.
Juste l'utiliser comme vous le faites avec monté().
Pour votre référence, visitez le la documentation.