vue页面跳转,$route 无法被监听

发布于 2022-09-12 04:26:27 字数 263 浏览 6 评论 0

vue项目,从a路由跳转到b路由,在b路由对应的页面中监听$route,但是根本不会进断点?

a路由、b路由为两个不同的页面,路径也不同

b页面监听代码如下:

  watch: {
    '$route': {
      handler(to,from){
        debugger
        
      },
      deep: true
    }
  },

问题出在哪儿呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

锦爱 2022-09-19 04:26:27

这是正常的,从a路由跳转到b路由不会触发监听。你可以使用路由前置钩子或者加个immediate属性

只为守护你 2022-09-19 04:26:27

这个问题有人提过了:
https://segmentfault.com/q/1010000009423412


可以使用路由前置钩子,但和immediate没有关系

风吹雪碎 2022-09-19 04:26:27

$route 是 vue-router 挂载到 Vue.prototype 上的一个属性,而且只有 get 没有 set ,根本不能触发 watch

  Object.defineProperty(Vue.prototype, '$route', {
    get () { return this._routerRoot._route }
  })

而且是先有路由变化 routerView 去重新渲染组件 a / b ,路由变化的前后过程也不在组件存在的周期内

白鸥掠海 2022-09-19 04:26:27

可以用路由守卫在单个页面或者在router.js都行

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文