You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue3中vue-router如何配置默认显示的子路由组件

问题原因

这是Vue 3配套使用的vue-router 4.x版本路由规则调整导致的。vue-router 4.x中,子路由的path如果以/开头,会被判定为根路径的绝对路由,不再继承父路由的路径前缀。你配置的子路由path: '/'实际匹配的是站点根路径/,而非父路由的/philosophy路径,因此访问/philosophy时无法匹配到对应的card1组件。


解决方案

官方推荐的默认子路由实现方式如下,将默认子路由的path设置为空字符串,同时所有子路由路径都去掉开头的/使用相对路径即可:

const routes = [
  {
    path: '/',
    name: "home",
    component: Home
  },
  {
    path: '/philosophy',
    component: philosophy,
    children: [{
        path: '', // 空路径默认匹配父路由地址/philosophy
        component: card1
      },
      {
        path: 'card2', // 相对路径,实际匹配/philosophy/card2
        component: card2
      },
      {
        path: 'card3',
        component: card3
      },
      {
        path: 'card4',
        component: card4
      }]
  }  
]

修改后访问/philosophy时会自动加载card1组件,其余子路由也会按照你预期的路径规则匹配。

如果更倾向于用重定向实现,也可以参考以下配置:

const routes = [
  {
    path: '/',
    name: "home",
    component: Home
  },
  {
    path: '/philosophy',
    component: philosophy,
    redirect: '/philosophy/card1', // 访问父路由直接重定向到card1的地址
    children: [{
        path: 'card1',
        component: card1
      },
      // 其余子路由同上
    ]
  }  
]

内容的提问来源于stack exchange,提问作者SDEscobedo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 18:54:01