路由钩子,即路由拦截器,vue-router一共有三类:
- 全局钩子
- 路由单独钩子
- 组件内钩子
全局钩子
router.beforeEach()
在src/router/index.js中写代码:
1 | // 定义路由配置 |
每个钩子方法接收三个参数:
to
: Route : 即将要进入的目标 [路由对象]from
: Route : 当前导航正要离开的路由next
: Function : 继续执行函数- next():继续执行
- next(false):中断当前导航
- next(‘/‘)或next({path:’/‘}):跳转新页面,常用于登陆失效跳转登陆
路由单独钩子
router.beforeEnter()
在路由配置中单独加入钩子,在src/router/index.js中使用:
1 | { |
组件内钩子
在路由组件内定义钩子函数(下面例子在组件Two.vue
中使用):
beforeRouteEnter
:进入页面前调用beforeRouteUpdate
(2.2 新增):页面路由改变时调用,一般需要带参数beforeRouteLeave
:离开页面调用
1 | <script> |