作用:对路由进行权限控制(路由守卫的功能其实和axios的拦截器差不多)
分类:全局守卫、独享守卫、组件内守卫
全局守卫:
//全局前置首位,初始化时执行,每次路由切换前执行
router.beforeEach((to,from,next)=>{console.log('beforeEach',to,from);if(to.meta.isAuth){//判断当前路由是否需要进行权限控制if(localStorage.getItem('school')==='yaoayao'){//权限控制的具体表现next();}else{alert('暂无权限')}}else{next();//放行}
})
//全局后置首位,初始化时执行,每次路由切换后执行
router.afterEach((to,from,next)=>{console.log('afterEach',to,from);if(to.meta.title){document.title=to.meta.title//修改网页title}else{document.title='vue_test'}
})
独享守卫:
beforeEnter(to,from,next){console.log('beforeEnter',to,from);if(to.meta.isAuth){if(localStorage.getItem('school')==='yaoayao'){next();}else{alert('暂无权限查看')}}else{next();}
}
组件内守卫:
//进入守卫,通过路由规则,进入该组件时被调用
beforeRouterEnter(to,from,next){},
//离开守卫,通过路由规则,离开该组件时被调用
beforeRouterLeave(to,from,next){}