En mi página principal tengo menús desplegables que se muestran v-show=show
al hacer clic en el enlace @click = "show=!show"
y quiero configurarlos show=false
cuando cambio la ruta. Avísame por favor cómo realizar esto.
vue.js
vuejs2
vue-router
kipris
fuente
fuente
$route: function(to, from) {
si desea admitir navegadores más antiguos y no está usando babel.Si está utilizando v2.2.0, entonces hay una opción más disponible para detectar cambios en $ routes.
Para reaccionar a los cambios de parámetros en el mismo componente, simplemente puede mirar el objeto $ route:
O utilice el protector beforeRouteUpdate presentado en 2.2:
Referencia: https://router.vuejs.org/en/essentials/dynamic-matching.html
fuente
beforeRouteUpdate
solo funciona en la vista que declara el método y no en ningún componente secundarioSolo en caso de que alguien esté buscando cómo hacerlo en mecanografiado, esta es la solución
Y sí, como lo menciona @Coops a continuación, no olvide incluir
Editar: Alcalyn hizo un muy buen uso del tipo de ruta en lugar de usar cualquier
fuente
import { Prop, Watch } from "vue-property-decorator";
any
tipo, es posible que desee usar la interfazRoute
deimport { Route } from 'vue-router';
Las respuestas anteriores son mejores, pero solo para completar, cuando está en un componente puede acceder al objeto de historial dentro del VueRouter con: this. $ Router.history. Eso significa que podemos escuchar los cambios con:
this.$router.listen((newLocation) =>{console.log(newLocation);})
Creo que esto es principalmente útil cuando se usa junto con este. $ Router.currentRoute.path Puede verificar de qué estoy hablando acerca de colocar un
debugger
instrucciones en su código y comience a jugar con la Consola Chrome DevTools.
fuente
El vigilante con la opción profunda no funcionó para mí.
En cambio, uso el enlace de ciclo de vida actualizado () que se ejecuta cada vez que cambian los datos del componente. Solo úsalo como lo haces con montado () .
Para su referencia, visite la documentación .
fuente
Otra solución para el usuario mecanografiado:
fuente