watch监听路由,第一次不触发,后续每次触发两次?

我非常疑惑,应该是我不懂监听的机制。
监听是在B页面写的,A页面中有一个Button可以跳转到B页面。
第一次跳转的时候不打印,后续每次从B到A或者A到B都会console.log两次。
image.png

求解!

阅读 8.9k
2 个回答

A-->B的时候,路由已经改变,B组件才初始化,$rout才被监听,所以不会触发,你可以加个immediate,让他第一次也触发

'$route':{
        handler(to, from){
        
        },
        immediate: true
}

至于打印两次,可能是你哪里做了重定向(比如跳转的路径和定义的不一致),导致跳转时路由改变了两次,这个需要你自己仔细找下

监听路由用路由钩子,不要用 watch

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题