Ethan Zhu
©️朱俊辉
All Rights Reserved.

vue跳转同一个路由不触发created钩子的问题

刚刚碰到个恶心的问题,解决完赶紧来博客写了一篇文章

需求: 点击上一篇文章或下一篇文章重新加载当前路由并把上或下一篇文章的id传递给params作为参数

问题:  跳转同一个路由地址,不触发created钩子函数, (id有正常传递)

去vuerouter文档看了下,附上链接

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

文档说的很清楚了, (我因为懒,都没怎么看过vuerouter的文档( ̄▽ ̄)”)

解决方法也是用了文档的解决方案1

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

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

 

2018-07-18
暂无评论

发表评论