beforeEach全局守卫「建议收藏」

beforeEach全局守卫「建议收藏」//列举需要判断登录状态的“路由集合”,当跳转至集合中的路由时,如果“未登录状态”,则跳转到登录页面login;//当直接进入登录页面login时,如果“已登录状态”,则跳转到首页home;constrouter=newRouter({ routes:[{ path:’/’, //默认进入路由 redirect:’/home’ //重定向 }, { path:’/login’, name:’login’, }, { path:

大家好,又见面了,我是你们的朋友全栈君。

//列举需要判断登录状态的“路由集合”,当跳转至集合中的路由时,如果“未登录状态”,则跳转到登录页面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;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149444.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号