这样写当访问 home 的时候我的调用栈会爆如下图
因为你每次进入登陆页都会判断未登录 再次跳入登陆页形成死循环
可以这样写
vueRouter.beforeEach(function (to, from, next) {
const nextRoute = [ 'account', 'order', 'course'];
const auth = store.state.auth;
//跳转至上述3个页面
if (nextRoute.indexOf(to.name) >= 0) {
//未登录
if (!store.state.auth.IsLogin) {
vueRouter.push({name: 'login'})
}
}
//已登录的情况再去登录页,跳转至首页
if (to.name === 'login') {
if (auth.IsLogin) {
vueRouter.push({name: 'home'});
}
}
next();
13 回答13.1k 阅读
7 回答2.3k 阅读
9 回答1.8k 阅读✓ 已解决
6 回答1.8k 阅读
3 回答1.4k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
6 回答1.4k 阅读✓ 已解决
按你写的逻辑,没登录,跳登录页,然而还是没登录,继续跳登录页然后循环爆栈
要判断下 to === login的时候就不要再判断是否登录了