vue-manage-system
vue-manage-system copied to clipboard
同一个页面,不同参数的多个标签内容会串,该如何处理
比如,有个用户列表页面,后面有一个 详情 链接 到 detail.vue, 然后后面带上 uid=xxx, 这样每个detail会打开一个标签。但是所有的标签数据会变成一样的,这个如何处理?
已经通过路由守卫解决了这个问题,不过不了解还有没有办法指定该组件不复用,不然的话,只好每次都重加载数据
在home.vue里有个tagsList用来存放需要复用的组件,不如不想组件复用,就过滤掉该组件即可
watch: {
'$route' (to, from) {
// 重新加载数据...
}
},
// 在详情组件内部添加观察,当网址变化时,触发。这样的方式,每次切换详情标签时,重新加载了数据
修改 Home.vue , 通过给 router-view 增加key的方式,可以完美解决此问题。
将
<router-view></router-view>
改为
<router-view :key="key"></router-view>
在 script 中,将 data 改为:
data() {
return {
tagsList: [],
keys: [],
collapse: false
};
},
添加
computed: {
key() {
return this.$route.fullPath
}
},
已经通过路由守卫解决了这个问题,不过不了解还有没有办法指定该组件不复用,不然的话,只好每次都重加载数据
如果组件不复用,在打开多个用户详细信息tab时,来回切换tab时都会重新刷新页面,这样是不是就破坏了tab的使用的意义?而且如果有些页面,在你做了一些操作后(比如一些查询页面,选择了一些查询条件),切换后再切换回来,那些操作会丢失