出现问题:
当需要在同一个页面不停跳转,根据不同参数来更新页面内容时,参数只接收一次,路由参数改变,但是页面内容没改变。
我们只会看到导航栏中的参数在变化,然而我们页面中的数并没有变化。这是为什么呢?这是因为跳转同一个组件,这个组件在第一次,会执行组件的生命周期中的步骤,但是第二次再跳转该组件的时候,组件会被重用,所以不会再执行生命周期中的某些过程,同样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里的方法
}
},