什么是路由守卫? 也叫导航守卫,就是路由在跳转过程中的一些钩子函数,在这个过程中会触发这些函数能让你操作其他一些事情,可以过滤一些操作,
简单来说就是,比如你想进入一些场所,门口有保安,保安会询问你一些基本问题才会让你通行,如果你要进入,则需要登记,路由守卫就是这个作用,路由守卫分前置全局路由,后置全局路由。
路由守卫分为三种:
- 全局路由守卫
- 局部路由守卫
- 路由独享守卫
一般的使用场景?
1.全局路由守卫
首先得知道钩子函数执行顺序, beforEach,beforeResolve,afterEach
- to:Route 即将要进入的目标,也就是路由对象
- from:Route 当前导航正要离开的路由
- next:Function 一定要调用该next方法,否则路由不会向下执行
-
// beforeEach 全局前置钩子 router.beforeEach((to, from, next) => { console.log(to); //去哪个页面 console.log(from); //从哪个页面来的 next() //回调函数 }) //全局后置钩子函数 router.afterEach ( to,from ) = {}
2.局部路由守卫
- 局部路由也就是在组件内的路由守卫
- 思路和全局守卫思路差不多,在这就不过多介绍了
- 局部路由守卫有三步,分别是:
- 路由加载之前触发:beforeRouteEnter(to,from,next)
- 更新路由之前触发:beforeRouteUpdate(to,from,next)
- 离开当前路由之前触发:beforeRouteLeave(to,from,next)