Vuejs:路线变更事件

vue.js Vue.js

Mandy村村Harry

2020-03-10

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

第410篇《Vuejs:路线变更事件》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

3个回答
逆天小胖Mandy 2020.03.10

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

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

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

路易猪猪 2020.03.10

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

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

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

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

Sam神乐番长 2020.03.10

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

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

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

供您参考,请访问文档

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android