OK,废话不多说。来看方法。
router.beforeEach((to, from, next) => {
if(store.state.avatar == '' && to.path != '/'){
next({
path: '/',
replace: true
})
}else{
next();
}
})
说下原理。
首先,reload会清空vuex里的东西,然后reload后会重新走一遍路由。知道这两个事情后就简单了。
首先初始化的时候在vuex里放一个变量,然后在路由钩子里监听它,如果变为空,且当前路由并不是你指定的那个路由(我这里是首页),那就在next里重新指定一下路由的指向。
网友评论