响应路由参数变化watch+$route

问题提出

在解决侧边栏问题上,watch对象$route的变化使得问题变得简单,在新手解决侧边栏问题时,可能碰到好不容易完成router-view与侧边栏的联动,但是当浏览器后退、前进时,侧边栏不随之变化的情况,监测$route对象可以解决这个问题。

问题解决

原封不动摘抄vue响应路由参数的变化部分,可直接移步响应路由参数的变化

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

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

const User = {
  template: '...',
  watch: {
    $route(to, from) {
      // 对路由变化作出响应...
    }
  }
}

当然也可参考导航守卫

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。