router.beforeEach((to, from, next) => {
const tokena = store.state.user.token.token
const LoginData = ['/user']
if (tokena) {
next()
} else {
if (LoginData.some((item) => item === to.path)) {
// 这里使用next会出现导航故障,就是redirect事件
router.push('/login')
} else {
next()
}
}
})
导航守卫分析:to 要去的路径
from 从哪儿出发
token是去某些地方需要携带的令牌
(如果有令牌,可以去任何地方;
如果没有令牌 1,需要令牌才能通行的路径,返回到登录页,登录后带上token令牌
2,需要去的路径都是不需要token的path,直接通行
)