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 的变化
},
},
本文来自博客园,作者:skystrivegao,转载请注明原文链接:https://www.cnblogs.com/skystrive/p/18597503
整理不易,如果对您有所帮助 请点赞收藏,谢谢~