路由守卫(全局守卫,局部守卫,组件内守卫)
Posted 勇敢*牛牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了路由守卫(全局守卫,局部守卫,组件内守卫)相关的知识,希望对你有一定的参考价值。
路由守卫
-
作用:对路由进行权限控制
-
分类:全局守卫、独享守卫、组件内守卫
-
全局守卫:
//全局前置守卫:初始化时执行、每次路由切换前执行 router.beforeEach((to,from,next)=> console.log('beforeEach',to,from) if(to.meta.isAuth) //判断当前路由是否需要进行权限控制 if(localStorage.getItem('school') === 'atguigu') //权限控制的具体规则 next() //放行 else alert('暂无权限查看') // next(name:'guanyu') else next() //放行 ) //全局后置守卫:初始化时执行、每次路由切换后执行 router.afterEach((to,from)=> 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') === 'atguigu') next() else alert('暂无权限查看') // next(name:'guanyu') else next()
-
组件内守卫:
//进入守卫:通过路由规则,进入该组件时被调用 beforeRouteEnter (to, from, next) , //离开守卫:通过路由规则,离开该组件时被调用 beforeRouteLeave (to, from, next)
路由器的两种工作模式
- 对于一个url来说,什么是hash值?—— #及其后面的内容就是hash值。
- hash值不会包含在 HTTP 请求中,即:hash值不会带给服务器。
- hash模式:
- 地址中永远带着#号,不美观 。
- 若以后将地址通过第三方手机app分享,若app校验严格,则地址会被标记为不合法。
- 兼容性较好。
- history模式:
- 地址干净,美观 。
- 兼容性和hash模式相比略差。
- 应用部署上线时需要后端人员支持,解决刷新页面服务端404的问题。
以上是关于路由守卫(全局守卫,局部守卫,组件内守卫)的主要内容,如果未能解决你的问题,请参考以下文章