Vue-router中path的值是空字符串,这是否等同与根目录?

新手上路,请多包涵

若依vue3前端的路由模块中,以下配置代码片段中path是空字符串,是否等同与path:'/'。在vue-router文档里面没看到空字符串''的定义,出处在哪里呢?

{

path: '',
component: Layout,
redirect: '/index',
children: [
  {
    path: '/index',
    component: () => import('@/views/index'),
    name: 'Index',
    meta: { title: '首页', icon: 'dashboard', affix: true }
  }
]

},

阅读 3.7k
2 个回答

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

如你所见,children 配置只是另一个路由数组,就像 routes 本身一样。因此,你可以根据自己的需要,不断地嵌套视图。

此时,按照上面的配置,当你访问 /user/eduardo 时,在 User 的 router-view 里面什么都不会呈现,因为没有匹配到嵌套路由。也许你确实想在那里渲染一些东西。在这种情况下,你可以提供一个空的嵌套路径:

const routes = [
{

path: '/user/:id',
component: User,
children: [
  // 当 /user/:id 匹配成功
  // UserHome 将被渲染到 User 的 <router-view> 内部
  { path: '', component: UserHome },

  // ...其他子路由
],

},
]
这个例子的 demo 可以在这里找到。

嵌套的命名路由#
在处理命名路由时,你通常会给子路由命名:

const routes = [
{

path: '/user/:id',
component: User,
// 请注意,只有子路由具有名称
children: [{ path: '', name: 'user', component: UserHome }],

},
]
这将确保导航到 /user/:id 时始终显示嵌套路由。

在一些场景中,你可能希望导航到命名路由而不导航到嵌套路由。例如,你想导航 /user/:id 而不显示嵌套路由。那样的话,你还可以命名父路由,但请注意重新加载页面将始终显示嵌套的子路由,因为它被视为指向路径/users/:id 的导航,而不是命名路由:

const routes = [
{

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

},
]

新手上路,请多包涵

[vue-router] "path" is required in a route configuration.
大佬这个有解吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题