vue-router

一、导航解析流程

1 导航被触发

2 在失活的组件里调用离开守卫beforeRouteLeave(to,from,next)

3 调用全局前置守卫 beforeEach(to,from,next)

4 在复用的组件里调用beoreRouteUpdate(to,from,next)

5 在路由配置里调用路由独享的守卫beforeEnter()

6 解析异步路由组件

7 在被激活的组件里调用beforeRouteEnter(to,from,next)

8 调用全局解析组件beforeResolve

9 导航被确认

10 调用全局后置守卫afterEach()

11 触发DOM更新

12 用创建好的实例调用beforeRouteEnter守卫中传递给next的回调函数

二、路由守卫分类

1 全局前置守卫  beforeEach

2 全局后置守卫 afterEach

3 全局解析守卫 beforeResolve

4 路由专享守卫 beforeEnter

5 组件内守卫 beforeRouteEnter,beforeRouteUpdate,beforeRouteLeave

三、vue-router的两种模式

  分别是hash模式和history模式

  1 hash模式,就是url中带#号的模式,#号以及#号后面的为url的hash,通过location.hash获取;

  hash模式的实现原理是onhashchange事件,通过监听这个事件来触发页面的更新

  典型的应用网站有网易云音乐

  2 history模式,更好看的url显示,没有#

  history是通过history api实现的,在HTML5中添加了pushstate(),replacestate()两个方法,顾名思义是向浏览器历史状态中添加状态或修改状态

  当修改或者添加状态后,进行浏览器动作时,就会触发popstate事件,以此来更新页面

  需要后端配合处理404问题

  

  

  

原文地址:https://www.cnblogs.com/linhongjie/p/12459711.html