在vue项目中,遇到一个这样的问题:
A,B,C三个路由,A->B->C, 其中A->B每次进入都需要刷新, B和C可以来回多次切换并且B数据不刷新.
我的思路是:用keep-alive缓存组件, A->B时强制刷新页面.
实现A->B: 用afterEach判断to,from的name分别符合B和A时,用widow.localtion.reload()强制刷新B页面.
问题出现在了A->B中:
以上思路实现的方法在Chrome和安卓机上没有问题,可以成功跳转到B页面并刷新, 但是在safari和IOS真机上都出现了A页面原地刷新,进入不到B中.
//A页面中的点击跳转行为
getCliam(){
console.log('getCliam');
this.$router.push('/claim/claimForm');
},
//main.js导航钩子函数
router.afterEach((to, from) => {
if(to.name=='claimForm'&&from.name=='claimList'){
console.log('afterEach')
window.location.reload();
}
})
哪位懂得大佬帮忙看下什么原因,难道有兼容性问题?或者以上不用跳转用keepAlive的一些处理方法实现A->B刷新新页面,B和C的都可以缓存?
非常感谢!
慕姐4208626
相关分类