Vuejs: événement sur le changement de route

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 show=false quand je change de route. Conseillez-moi s'il vous plaît comment réaliser cette chose.

26
demandé sur kipris 2017-09-25 13:17:50

2 réponses

Installation d'un watcher sur $route dans votre composant comme ceci:

watch:{
    $route (to, from){
        this.show = false;
    }
} 

Ceci observe pour les changements d'itinéraire et lorsqu'ils sont modifiés, définit show à false

57
répondu Vamsi Krishna 2018-03-16 12:24:22

Si vous utilisez v2.2.0, une autre option est disponible pour détecter les changements dans $routes.

Pour réagir aux changements de paramètres dans le même composant, vous pouvez simplement regarder l'objet $ route:

const User = {
  template: '...',
  watch: {
    '$route' (to, from) {
      // react to route changes...
    }
  }
}

Ou, utilisez la garde beforeRouteUpdate introduite en 2.2:

const User = {
  template: '...',
  beforeRouteUpdate (to, from, next) {
    // react to route changes...
    // don't forget to call next()
  }
}

Référence: https://router.vuejs.org/en/essentials/dynamic-matching.html

6
répondu Shubham Nigam 2018-02-21 05:29:54