vue学习笔记之路由守卫触发流程梳理

6 篇文章 0 订阅
2 篇文章 0 订阅

路由守卫触发流程梳理

路由守卫概括来说可以分为全局路由守卫、路由独享守卫和组件内路由守卫。本次笔记将梳理一下当路由发生改变时各个路由钩子触发的顺序,帮助更好的理解路由机制。
路由触发的流程我分为了两类:

  1. 一类是不同组件(组件A跳转到组件B)的路由跳转流程。
  2. 另一类是复用组件的路由跳转流程(组件A包含动态路由参数,只改变组件A的动态路由参数触发的路由跳转流程,示例: name/:id, 只改变id的值来触发路由跳转)。

不同组件之间的路由跳转流程图

Created with Raphaël 2.2.0 导航被触发 触发组件A组件内路由守卫beforeRouteLeave 触发全局路由前置守卫beforeEach 触发组件B路由独享守卫beforeEnter 解析组件B 触发组件B的组件内路由守卫beforeRouteEnter 触发全局路由解析守卫beforeResolve 导航被确认 触发全局路由钩子afterEach 渲染DOM
  1. 导航被触发(A–>B)
  2. 调用A组件内路由守卫beforeRouteLeave(to,from,next)
  3. 调用全局路由前置守卫router.beforeEach(to,from,next)
  4. 调用B路由独享守卫 beforeEnter(to,from.next)
  5. 解析异步路由组件B
  6. 调用B的组件内路由守卫beforeRouteEnter(to,from,next)
  7. 调用全局路由解析守卫 router.beforeResolve(to,from,next)
  8. 导航被确认
  9. 调用全局路由钩子router.afterEach(to,from)
  10. 渲染B组件DOM

复用组件的路由跳转流程图

Created with Raphaël 2.2.0 导航被触发 触发全局路由前置守卫beforeEach 触发复用组件的组件内路由守卫beforeRouteUpdate 触发全局路由解析守卫beforeResolve 导航被确认 触发全局路由钩子afterEach 更新DOM
  1. 导航被触发(改变动态路由参数)
  2. 调用全局路由前置守卫 router.beforeEach(to,from,next)
  3. 调用复用组件的组件内路由守卫 beforeRouteUpdate(to,from,next)
  4. 调用全局路由解析守卫router.beforeResolve(to,from,next)
  5. 导航被确认
  6. 调用全局路由钩子 router,afterEach(to,from)
  7. 更新DOM

DEMO下载地址: https://github.com/fireworksAug/practice.git

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值