导航守卫在用户权限检查中特别常用,先上一段基础代码:
router.beforeEach((to, from, next) => {
const pathArr=['/standard','/user'] //设置需要权限的路径,
if (pathArr.indexOf(to.Path)!==-1){ //如果to.path在上面路径内,to.path是绝对路径,to.fullPath是带参数的
const token = sessionStorage.getItem('user')//获取session
if(token){//如果有session
next()//放行
}else{
next('/login')//如果没有session跳转登录页面
}
}else{//如果to.path没有在在上面路径内,放行
next()
}
}
子目录限制写法:
//导航守卫,只要发生了路由跳转,必然触发beforEach
router.beforeEach((to, from, next) => {
const pathArr=['/standard','/user'] //设置需要权限的路径,
if (to.fullPath.indexOf(pathArr[0])!==-1||to.fullPath.indexOf(pathArr[1])!==-1){ //如果to.path在上面路径内,to.path是绝对路径,to.fullPath是带参数的
const token = sessionStorage.getItem('user')//获取session
if(token){//如果有session
next()//放行
}else{
next('/login')//如果没有session跳转登录页面
}
}else{//如果to.path没有在在上面路径内,放行
next()
}
}
更多高级用法,参考文章:https://blog.csdn.net/qq_42778001/article/details/102477217