Vue 路由

vue-router

路由的模式

  • 历史模式history (可以使#不出现)
  • hash(#)

路由相关标签

  • router-view 组件展示的区域
  • router-link 跳路由 to属性->去到哪个路径
  • (class) router-link-exact-active 当路由到哪里时,该类名就添加到对应的路由标签上
  • (class) router-link-active 激活路径包含这个路径 (激活子路由,跟路由也带上)

路由配置属性值

  • path 路由路径
  • redirect 重定向 (function or string)
  • component Vue组件
  • beforeEnter 路由独享守卫 (function)

  • 全局守卫

    • beforeEach
    • beforeResolve
    • afterEach
  • 路由独享守卫

    • beforeEnter
  • 组件内守卫

    • beforeRouteLeave
    • beforeRouteEnter
    • beforeRouteUpdate mounted
  • 动态路由

    • /abc/:id
    • this.$route.params.xxx => push({paht:”, params:{id: ”}}) => url 无参数
    • this.$route.query.xxx => push({path:”, query:{id:”}}) => url get参数

路由解析流程

  1. 导航被触发
  2. 在失活的组件里调用离开守卫
  3. 调用全局的 beforeEach 守卫
  4. 在重用组件里调用 beforeRouteUpdate 守卫(2.2+)
  5. 在路由配置里调用 beforeEnter
  6. 解析异步路由组件。
  7. 在被激活的组件里调用 beforeRouteEnter
  8. 调用全局的 beforeResolve 守卫 (2.5+)
  9. 导航被确认。
  10. 调用全局的 afterEach 钩子
  11. 触发 DOM 更新
  12. 用创建好的实例调用 beforeRouteEnter 守卫中传给 next 的回调函数