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  阅读(415)  评论(0)    收藏  举报