$route 侦听路由参数的变化

https://router.vuejs.org/zh/guide/essentials/dynamic-matching.html#%E5%93%8D%E5%BA%94%E8%B7%AF%E7%94%B1%E5%8F%82%E6%95%B0%E7%9A%84%E5%8F%98%E5%8C%96

之前自己理解错,认为只要路由发生变化 用$route就可以侦听路由的变化 !!!(其他类型的路由变化可以是路由的导航钩子)

提醒一下,当使用路由参数时,例如从 /user/foo 导航到 /user/bar,原来的组件实例会被复用。因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。不过,这也意味着组件的生命周期钩子不会再被调用。

复用组件时,想对路由参数的变化作出响应的话,你可以简单地 watch (监测变化) $route 对象:

1 watch: {
2     $route(to, from) {
3       // 对路由变化作出响应...
4     }

或者使用 2.2 中引入的 beforeRouteUpdate 导航守卫

1 beforeRouteUpdate (to, from, next) {
2     // react to route changes...
3     // don't forget to call next()
4   }
原文地址:https://www.cnblogs.com/shun1015/p/13034366.html