1. 动态路由匹配,:blogId就是动态获取url段来访问不同的组件

      1. const router = new Router({
      2. routes: [
      3. {
      4. path: '/detail/:blogId',
      5. component: () => import('@/pages/Detail/template.vue')
      6. }
      7. ]
      8. })
    2. 嵌套路由,路由里包含下级路由

      1. const User = {
      2. template: `
      3. <div class="user">
      4. <h2>User {{ $route.params.id }}</h2>
      5. <router-view></router-view>
      6. </div>
      7. `
      8. }
      1. const router = new VueRouter({
      2. routes: [
      3. { path: '/user/:id', component: User,
      4. children: [
      5. {
      6. // 当 /user/:id/profile 匹配成功,
      7. // UserProfile 会被渲染在 User 的 <router-view> 中
      8. path: 'profile',
      9. component: UserProfile
      10. },
      11. {
      12. // 当 /user/:id/posts 匹配成功
      13. // UserPosts 会被渲染在 User 的 <router-view> 中
      14. path: 'posts',
      15. component: UserPosts
      16. }
      17. ]
      18. }
      19. ]
      20. })
    3. 编程式导航,就是类似于js的location.href = ‘…..’跳转,只不过这是vue版,等同于

      1. router.push(location, onComplete?, onAbort?)

      onComplete时导航完成时调用,onAbort时导航终止时调用。这两个都是回调。

    4. 命名路由,就是给路由加name属性

      1. const router = new VueRouter({
      2. routes: [
      3. {
      4. path: '/user/:userId',
      5. name: 'user',//就是这个
      6. component: User
      7. }
      8. ]
      9. })
    5. 命名视图,同级展示多个视图,比如同时展示顶部栏、侧边栏

      1. <router-view class="view one"></router-view> //这里的没有name属性,所以下方就用default
      2. <router-view class="view two" name="a"></router-view>
      3. <router-view class="view three" name="b"></router-view>
      1. const router = new VueRouter({
      2. routes: [
      3. {
      4. path: '/',
      5. components: { //注意带s
      6. default: Foo,
      7. a: Bar,
      8. b: Baz
      9. }
      10. }
      11. ]
      12. })
    6. 重定向,从/a重定向到/b

      1. const router = new VueRouter({
      2. routes: [
      3. { path: '/a', redirect: '/b' }
      4. ]
      5. })

      别名是什么?访问/b,实际程序走的是/a,只是看起来是/b而已。

      1. const router = new VueRouter({
      2. routes: [
      3. { path: '/a', component: A, alias: '/b' }
      4. ]
      5. })
    7. 路由组件传参。。。这里先留着空位

    8. HTML5 History 模式

    路由的 history 模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。