大家好,又见面了,我是你们的朋友全栈君。
//列举需要判断登录状态的“路由集合”,当跳转至集合中的路由时,如果“未登录状态”,则跳转到登录页面login;
//当直接进入登录页面login时,如果“已登录状态”,则跳转到首页home;
const router = new Router({
routes: [{
path: '/',
//默认进入路由
redirect: '/home'
//重定向
},
{
path: '/login',
name: 'login',
},
{
path: '/home',
name: 'home',
},
{
path: '/list',
name: 'list',
},
{
path: '**',
//错误路由
redirect: '/home'
//重定向
}
]
});
//全局路由守卫
router.beforeEach((to, from, next) => {
console.log('navigation-guards');
//to: Route: 即将要进入的目标 路由对象
//from: Route: 当前导航正要离开的路由
//next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。
const route = ['home', 'list'];
let isLogin = isLogin;
//是否登录
//未登录状态;当路由到route指定页时,跳转至login
if(route.indexOf(to.name) >= 0) {
if(!isLogin) {
this.$router.push({
path: '/login '
});
}
}
//已登录状态; 当路由到login时, 跳转至home
if(to.name === 'login') {
if(isLogin) {
this.$router.push({
path: '/home '
})
}
}
next();
});
export default router;
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149444.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...