描述
在做权限的时候,角色一不能查看abc路由,角色一退出,管理员登录,管理员有全部访问权限,但是管理员登录后还还是角色一的路由权限,abc路由不能访问。但是刷新一下就可以了。
1.退出解决
在退出登录的时候加上 location.reload()
import Cookie from 'js-cookie'
const state = {
menu: []
}
const mutations = {
// 设置menu的数据
setMenu(state, val) {
state.menu = val
Cookie.set('menu', JSON.stringify(val))
},
logOut(state, router) {
// 清除token信息
Cookie.remove('token')
// 清除cookie中的menu
Cookie.remove('menu')
location.reload(); // 为了重新实例化vue-router对象 避免bug
// window.location.reload(); // 强制刷新
// 跳转到登录页面
router.push('/login')
}
}
2.登录前解决
vue addRoutes动态添加路由后,切换帐号,重新添加路由
项目后台需要权限分配,做好之后发现切换帐号的话还是之前的路由,并没有重新添加
解决方法:
login.vue页面(动态添加路由的上一个页面)
created() {
// 判断是否已经刷新
if (this.$store.getters.addRouters.length > 0) {
location.reload()
}
}
注意
不要使用 window.location.reload() 刷新,因为在退出以后还会有一个几秒的白屏阶段,用户体验不好,而使用 location.reload()就不会存在这个问题。