Na minha página principal, tenho listas suspensas que aparecem v-show=show
clicando no link @click = "show=!show"
e quero definirshow=false
quando altero a rota. Aconselhe-me, por favor, como perceber isso.
vue.js
vuejs2
vue-router
kipris
fonte
fonte
$route: function(to, from) {
se você deseja oferecer suporte a navegadores mais antigos e não está usando o babel.Se você estiver usando a v2.2.0, haverá mais uma opção disponível para detectar alterações nas rotas $.
Para reagir às alterações de parâmetros no mesmo componente, você pode simplesmente observar o objeto $ route:
Ou use o protetor beforeRouteUpdate apresentado no 2.2:
Referência: https://router.vuejs.org/en/essentials/dynamic-matching.html
fonte
beforeRouteUpdate
só funciona na visão de que declara o método e não em qualquer componente filhoApenas caso alguém esteja procurando como fazê-lo em texto datilografado, aqui está a solução
E sim, como mencionado por @Coops abaixo, não esqueça de incluir
Edit: Alcalyn fez um bom ponto de usar o tipo de rota em vez de usar qualquer
fonte
import { Prop, Watch } from "vue-property-decorator";
any
tipo, você pode usar a interfaceRoute
deimport { Route } from 'vue-router';
As respostas acima são as melhores, mas apenas para completar, quando você está em um componente, pode acessar o objeto de história dentro do VueRouter com: this. $ Router.history. Isso significa que podemos ouvir as alterações com:
this.$router.listen((newLocation) =>{console.log(newLocation);})
Eu acho que isso é útil principalmente quando usado junto com isso. $ Router.currentRoute.path Você pode verificar o que estou falando sobre como colocar um
debugger
instruções no seu código e comece a jogar com o Chrome DevTools Console.
fonte
O observador com a opção profunda não funcionou para mim.
Em vez disso, uso o gancho do ciclo de vida atualizado (), que é executado toda vez que os dados do componente são alterados. Apenas use-o como você faz com o mount () .
Para sua referência, visite a documentação .
fonte
Outra solução para o usuário datilografado:
fonte