FY-7216 9-vueRouter

vue-router

Router

路由是伴随着 SPA (单页面应用存在的)
spa出现后,前端可以自由的控制组件的渲染,来模拟页面的跳转

总结:
传统的路由一般是根据 URL 访问相关的 controller 进行数据资源的生成返回前端
前端路由是用 js 根据 url 返回对应的组件加载

所以,前端路由包含两个部分:

  1. url 的处理
  2. 组件加载

history&hash 路由

  1. hash 路由和 history 路由的区别:
    hash 路由一般会携带一个#号,不够美观,history 路由不存在这个问题,
    默认 hash 路由是不会向浏览器端发送请求,一般用于锚点,history 中 go、back、forward 以及浏览器的前进和后退按钮,一般都会向服务器端发起请求。
    hash 路由不支持 SSR,history 是可以的
    history 部署的时候,利用 nginx 渲染首页,然后根据路径重新跳转
    hash 路由监听 一般用 onHashChange history 路由的监听一般是 onPopState

history

history 是一个 BOM api,里面有 go,forward,back 三个 API,以及 pushState、replaceState
pushState 和 replaceState 有啥区别
两者都不会触发 popState 事件,不一定会重新渲染
popState 啥时候触发:
只有在点击浏览器的前进和后退按钮,以及调用 back go 的时候会触发

vue router

动态路由,包括 react.lazy import(),是一种代码进行动态拆分的技术,一般叫做 code splitting

在需要的时候才进行加载,

路由守卫
路由守卫是在路由触发之前执行一系列的操作,next 可以继续往下执行

触发流程:

  1. 组件--前一个组件的 beforeRouteLeave
  2. 全局--router.beforeEach
  3. 组件--如果是路由的参数 变化,触发 beforeRouteUpdate
  4. 配置文件里面:下一个 beforeEnter
  5. 组件--内部声明的 beforeRouteEnter
  6. 全局调用 beforeresolve
  7. 全局的 router.afterEach

router-history




  
  
  
  H5路由


  
  

router-hash




  
  
  
  路由


  

你可能感兴趣的:(FY-7216 9-vueRouter)