Vuejs:路线变更事件

在我的主页上,我v-show=show通过单击链接来显示下拉菜单,@click = "show=!show"并且我想show=false在更改路线时进行设置请告诉我如何实现这件事。

逆天小胖Mandy2020/03/10 10:11:25

在组件中的设置观察者$route如下所示:

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

这观察路线的变化,并在更改时设置show为false

路易猪猪2020/03/10 10:11:25

上面的响应是更好的方法,但是出于完整性考虑,当您处于组件中时,可以使用this。$ router.history访问VueRouter内部的历史对象。这意味着我们可以通过以下方式收听更改:

this.$router.listen((newLocation) =>{console.log(newLocation);})

我认为这在与this。$ router.currentRoute.path一起使用时主要有用。 debugger

代码中的说明,然后开始使用Chrome DevTools控制台。

Sam神乐番长2020/03/10 10:11:25

具有深层选项的Watcher对我不起作用。

相反,我使用了updated()生命周期挂钩,该挂钩在每次组件数据更改时都会执行。就像使用mount()一样使用它

mounted() {
   /* to be executed when mounted */
},
updated() {
   console.log(this.$route)
}

供您参考,请访问文档