路由守卫的分类
Vue中的路由守卫可以分为:全局的路由守卫; 单个路由独享的路由守卫; 组件级的路由守卫
vue-router全局有三个守卫:
router.beforeEach 全局前置守卫 进入路由之前
router.beforeResolve 全局解析守卫(2.5.0+) 在beforeRouteEnter调用之后调用
router.afterEach 全局后置钩子 进入路由之后
vue-router组件内的守卫:
beforeRouteEnter 进入路由之前
beforeRouteUpdata(2.2新增) 路由更新时
beforeRouteLeave 离开路由之前
vue-router单个路由独享的守卫: beforeEnter
路由守卫钩子函数里面有三个参数
to,from,next 这三个参数:
to和from是将要进入和将要离开的路由对象,路由对象指的是平时通过this.$route获取到的路由对象。
next:Function 这个参数是个函数,且必须调用,否则不能进入路由(页面空白)。
next() 进入该路由
next(false): 取消进入路由,url地址重置为from路由地址(也就是将要离开的路由地0址), next 跳转新路由,当前的导航被中断,重新开始一个新的导航。