嵌套路由中子路由未匹配时不会触发顶层通配符,需在父路由children中配置空路径默认路由和:pathmatch(.)子级通配路由,并确保其命名唯一;或通过meta标记+全局守卫统一拦截跳转。

Vue 嵌套路由中,子路由未匹配时不会自动触发顶层的 /:pathMatch(.*)* 通配符路由——因为父路由已成功匹配,子路径为空或非法,但整体 URL 仍落在父路由范围内。此时需在父组件内部显式处理“子路由未命中”的情况。
在父组件的 <router-view></router-view> 外层加兜底逻辑
父组件(如 User.vue)应判断当前子路由是否有效,若 $route.matched 中无活跃子路由(即只匹配到父级自身),就主动渲染 404 内容或重定向:
- 用
v-if控制:当$route.matched.length === 1(仅父路由匹配)且当前路径不是父路由默认子路径(如/user/123)时,显示 Not Found 提示 - 更推荐方式:在父组件
setup中监听$route变化,发现子路由未命中时调用router.push({ name: 'user-not-found', params: { id: $route.params.id } }),跳转到一个专用于嵌套场景的 404 子路由
为嵌套路由配置专用的空路径 + 通配子路由
在父路由的 children 数组里,明确声明两个关键子路由:
vue-composition-api-best-practices
Vue 3 组合式 API 与
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程
最新文章
