Vue 页面组件前进刷新,后退缓存

  最近在开发自己网站-新“淘二淘-大学生二手网”的手机版网页,在开发分类列表的时候遇到了一个难点,就是使用了keep-alive并且设置缓存为true之后,点击详情再返回列表时是实现了列表页的缓存,没有重新加载数据,但是当点击第一个分类的时候,列表顺利加载完毕,再点击第二个列表页面时,数据没变,也没发起请求,那么问题来了,如何解决呢?

后来百度到这个方法:

Vue有beforeRouteEnter这个钩子函数,并且传回三个参数to,from,next,注意:next()内部返回vm来指向当前组件,代码如下。

1
2
3
4
5
6
7
8
9
beforeRouteEnter(to, from, next) {
next(vm => {
if(to.name == '目标路由名称' && from.name == '来源路由名称'){
//vm.fetchData()
}else{
//vm.fetchData()
}
})
}
0%