Vue Router 嵌套路由

嵌套路由

一些应用程序的UI由多层嵌套的组件组成。对于组件中仍旧需要动态渲染组件的情况,就需要嵌套路由。

const User = {
  template: `
  <div>
  <h2>User Id : {{$route.params.id}}</h2>
  <router-view></router-view>
  </div>`
}

其中$route.params.id为获取路由中的动态段。如果是在js中,则需要加上this。

在组件中使用<router-view>(嵌套组件),还需要在路由中配置:

{
        path: '/user/:id',
        name: 'User',
        component: User,
        children: [
            {
                path: 'profile',
                component: UserProfile
            }
        ]
    }

当/user/:id/profile匹配成功,UserProfile将被渲染到User的<router-view>中。

注意:对于嵌套组件来说,它的父组件仍旧加载,改变的只是children的那部分。

以/开头的嵌套路径将被视为根路径,这允许你利用组件嵌套,而不必使用嵌套的URL:

{
        path: '/user/:id',
        name: 'User',
        component: User,
        children: [
            {
                path: '/profile',
                component: UserProfile
            }
        ]
    }

当/profile匹配成功(前面没有父路由路径),UserProfile将被渲染到User的<router-view>中。

不想匹配任何嵌套路径,但希望组件中的<router-view>能动态渲染一些东西:

{
        path: '/user/:id',
        name: 'User',
        component: User,
        children: [
            {
                path: '',
                component: UserHome
            }
        ]
    }

当/user/:id匹配成功,UserHome将被渲染到User的<router-view>中。

posted @ 2021-10-15 16:30  慕斯星球  阅读(202)  评论(0)    收藏  举报