vue页面跳转,$route 无法被监听
vue项目,从a路由跳转到b路由,在b路由对应的页面中监听$route
,但是根本不会进断点?
a路由、b路由为两个不同的页面,路径也不同
b页面监听代码如下:
watch: {
'$route': {
handler(to,from){
debugger
},
deep: true
}
},
问题出在哪儿呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这是正常的,从a路由跳转到b路由不会触发监听。你可以使用路由前置钩子或者加个immediate属性
这个问题有人提过了:
https://segmentfault.com/q/1010000009423412
可以使用路由前置钩子,但和
immediate
没有关系$route
是 vue-router 挂载到 Vue.prototype 上的一个属性,而且只有 get 没有 set ,根本不能触发 watch而且是先有路由变化 routerView 去重新渲染组件 a / b ,路由变化的前后过程也不在组件存在的周期内
可以用路由守卫在单个页面或者在router.js都行