vue-router

245 阅读1分钟

一、基础

一、动态路由匹配

  • $route.params 动态路由参数

  • $route.query

  • $route.hash

模式

匹配路径

$route.params

/user/:username

/user/evan

{ username: 'evan' }

/user/:username/post/:post_id

/user/evan/post/123

{ username: 'evan', post_id: 123 }

二、嵌套路由

  • children

/ 开头的嵌套路径会被当作根路径。 这让你充分的使用嵌套组件而无须设置嵌套的路径(可使用空路由)

const router = new VueRouter({
  routes: [
    { path: '/user/:id', component: User,
      children: [
        {
 // 当 /user/:id 匹配成功,// UserHome 会被渲染在 User 的 <router-view> 中
            { path: '', component: UserHome }, 
        },
        {
          // 当 /user/:id/profile 匹配成功,// UserProfile 会被渲染在 User 的 <router-view> 中
          path: 'profile',
          component: UserProfile
        },
        {
          // 当 /user/:id/posts 匹配成功// UserPosts 会被渲染在 User 的 <router-view> 中
          path: 'posts',
          component: UserPosts
        }
      ]
    }
  ]
})

三、路由导航方式

四、具名路径

  • 定义路由时,可以加上相应的名字,方便进行路径的跳转(v-link, router.go都可以用到)

    router.map({
      '/user/:userId': {
        name:'user', // 给这条路径加上一个名字
        component: { ... }
      }
    })
    <av-link="{ name: 'user', params: { userId: 123 }}">User</a>
    router.go({ name:'user', params: { userId:123 }})

v-ref子组件定义的索引,父组件可根据该值快速找到子组件,v-ref不支持驼峰命名规则。