跳转同一个组件,路由参数不同,页面数据却不更新问题

出现问题:
当需要在同一个页面不停跳转,根据不同参数来更新页面内容时,参数只接收一次,路由参数改变,但是页面内容没改变。

我们只会看到导航栏中的参数在变化,然而我们页面中的数并没有变化。这是为什么呢?这是因为跳转同一个组件,这个组件在第一次,会执行组件的生命周期中的步骤,但是第二次再跳转该组件的时候,组件会被重用,所以不会再执行生命周期中的某些过程,同样mount也不会执行,也就是说,不会执行第二次赋值。
这里有两种方法:
1.第一种:

beforeRouteUpdate(to,from,next){
  this.type=to.query.type;//路由携带的不同参数
  this.loadData();//在mounted调用的methods里的方法
  next();
 }

在这里可以获取新的路由参数
同时,需要把mounted里面执行的方法在这里重新调用一遍,那样视图才会根据你获取的新参数重新渲染数据,mounted里面的方法,可以在methods里面写一个方法,方便调用
2.第二种:

watch:{
 '$route'(to,from){
  this.type=to.query.type
  this.loadData();//在mounted调用的methods里的方法
 }
},
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值