做了个后台管理系统,使用的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() } } },
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。