zoukankan      html  css  js  c++  java
  • 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问题

      

      

      

  • 相关阅读:
    SpringBoot简单项目学习笔记08(servlet的内置容器的切换(tomcat、jetty、undertow))
    读《大家看的设计书(第三版)》有感
    百度比赛任务二收获
    百度前端任务一学习的知识
    学习git的内容
    codeforces #588 ABCD
    codeforces #597 div2 ABCD !F
    codeforces #589 div2 ABCD E待补
    codeforces #590 div3 BCDF E待补
    codeforces #591 div2 ABCD
  • 原文地址:https://www.cnblogs.com/linhongjie/p/12459711.html
Copyright © 2011-2022 走看看