- 前言:vue-router的切换不同于传统的页面的切换。路由之间的切换,其实就是组件之间的切换,不是真正的页面切换。这也会导致一个问题,就是引用相同组件的时候,由于参数不一样不会覆盖原打开的页面而会打开一个重复的页面,只是页面的数据不一样,再点开旧的页面时(B.1)发现数据还是新页面(B.2)的数据,点开旧页面(B.1)时不会调用created(),mounted()函数,会导致获取数据的函数无法调用从而该组件无法更新。
A 页面中跳转的方法
this.$router.push({
path: "/processInfo_management",
query: { process_code: process_code }
});
解决办法:
在watch中监听路由变化,其中$route.query.process_code
,process_code代表页面间传递的参数,fetchData代表调用的方法
B页面中数据刷新的方法
watch: {
"$route.query.process_code": "fetchData"
},
methods: {
fetchData() {
// 解决路由切换,页面不更新的实用方法
if (this.$route.path == "/processInfo_management") {
// 请求数据的方法
}
},
}