路由

50 阅读1分钟

image.png

路由传参 pramas传参 / 接受参数 this.route.params.idquery传参?接收参数this.route.params.id query传参 ? 接收参数 this.route.query.id

声明式导航 router-link 编程时式导航 $roouter.push

什么是路由守卫? 全局守卫 全局前置守卫 (所有路由进入前触发,进行权限控制)

image.png

       路由后置守卫
       

image.png

路由独享守卫

image.png

image.png

面试问题:你对路由守卫是怎么理解 路由守卫分为三种:全局守卫 路由独享守卫 组件内守卫

  1. 全局守卫
  • beforeEach
    • 可以用来做权限控制
    • 可以实现不同的页面标题不一样 document.title = to.meta.title
  • afterEach
    • 可以实现进度效果 NProgress.done()
  1. 路由独享守卫
  • beforeEnter 语法和 beforeEach 全局前置没有区别,只会对当前这一个路由规则有效果
  1. 组件内守卫
  • 只会对当前这个组件有效果,如果多个路由对应的是同一个组件,这个时候用组件内守卫更方便,只用写一次
  • beforeRouteEnter 类似 beforeEach
  • beforeRouteLeave 类似 afterEach
  • beforeRouteUpdate 路由切换的时候 当我们路由是同一个路由只不过参数变了 生命周期钩子不会执行 这个时候解决的办法就是监听 watch 我们$route 或者 beforeRouteUpdate