VUE-监听器(watch)解决路跳转(Router.push)以后,传递参数不更新问题

采用router实现路由页面跳转

this.$router.push({
name: /student,
params: {
name: '张三',
age: '10',
},
});

在/student页面获取到路由中的参数 并对当前页面的参数进行更新操作

create {

this.stuName = this.$route.params.stuName
}

问题

第一更新成功后 第二次再次跳转后,参数不刷新

根因

在 Vue.js 中,当你使用 this.\(router.push 或 this.\)router.replace 进行路由跳转时,如果目标路由与当前路由渲染的是同一个组件实例(即组件复用),那么 Vue Router 不会重新创建该组件实例,而是会复用现有的实例。这意味着组件的生命周期钩子(如 created 和 mounted)不会被再次调用,因为组件实例并没有被销毁和重新创建。

解决

写一个监听器(watch)

watch: {
// 监视 \(route 对象的变化 '\)route.params.stuName'(newVal, oldVal) {
// 当 equipCode 参数变化时,更新组件的 equipCode 数据属性
this.stuName = newVal;
// 你可以在这里添加其他逻辑来处理 equipCode 的变化
},
},

posted @ 2024-12-10 16:53  skystrivegao  阅读(520)  评论(0)    收藏  举报