做了个后台管理系统,使用的iview admin框架,在开发列表打开详情页面时遇到的问题

  • 问题描述
    当打开多个详情页之后,在详情页面之间切换,页面数据停留在第一个页面的数据,
  • 相关文档

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

    了解到问题后,我想到一种解决方法,用计算属性与监听函数监听路由变化,触发页面数据更新函数,试过直接监听$route,结果会触发,不过实际应用会报错,感觉应该是$route是全局对象的原因,所以我用了计算属性将它转化为一个动态变量来监听,个人试用正常
  • 相关代码

    computed: {  // 计算属性的 getter  onQuery: function () {    // `this` 指向 vm 实例    return this.$route.params  }},watch: {  'onQuery' (old, newValue) {    // 对路由变化作出响应...    if (newValue) {      this.getPageInfo()    }  }},