beforeEach钩子函数有3个参数,to,from,next,遍历所有的路由实行拦截。
我们可以在路由映射表中增加元信息,可以实现全局拦截或者局部拦截的方式。有关于元信息可以去官网搜索mate。
to : 从哪来
from:到哪去
next:放行
router.js
let router = new Router({
routers:[
// 路由写在里面
]
})
beforeEach我们可以写在router.js里面
//全局守卫
router.beforeEach((to, from, next)=> {
// 判断是否登录
if(sessionstorage.getItem("isLogin") == "1") {
next()
}else {
// 如果没有登录,但是跳转登录页面也放行
if(to.name == 'login') {
next()
}else {
// 如果没有登录,也不是去登录页,就拦截,让它跳转登录页
next('/login')
}
}
);