【前端框架】路由配置

对的,而且你这个问题问得非常"工程化"。

一句话先给结论:

React 和 Vue 都一样:

路由配置 ≠ 页面一定能显示

必须在界面中"给子路由一个出口"。

下面我用结构 → 机制 → 对照 React / Vue一步步拆给你。

一、核心结论(先记住这句话)

路由表只决定"路径 → 组件"的映射

页面是否显示,取决于父组件里有没有"占位符"

这个"占位符":

• React Router:

• Vue Router:

二、React 中「主路由 → 子路由」到底发生了什么

1️⃣ 路由配置(只是一张"规则表")

// router.ts

const router = createBrowserRouter([

{

path: "/",

element: , // 父路由组件

children: [

{

path: "user",

element:

}

]

}

]);

⚠️ 到这里为止,什么都不会显示

只是告诉路由系统:

/user 这个路径,逻辑上是 Layout 的子路由

2️⃣ 界面层必须"接住子路由"

// Layout.tsx

import { Outlet } from "react-router-dom";

export default function Layout() {

return (

{/* 👈 子路由在这里渲染 */}

);
}

👉 没有 :

• /user 能匹配

• 组件不会显示

• 页面看起来"没跳转"

3️⃣ 跳转只是改变 URL,不负责渲染
用户页

或:

navigate("/user");

👉 跳转 ≠ 显示

显示的前提是:Outlet 存在

三、Vue 是不是也这样?------是,一模一样

Vue Router 的等价结构

1️⃣ 路由表

// router/index.ts

const routes = [

{

path: '/',

component: Layout,

children: [

{

path: 'user',

component: User

}

]

}

]

2️⃣ 父组件里的"出口"
👉 没有 :

• URL 会变

• 页面不会变

• 和 React 的问题一模一样

四、React / Vue 对照表(帮你形成稳定心智模型)

概念 React Router Vue Router

路由配置 children children

子路由出口

路由跳转 navigate() / router.push() /

URL 改变 ✔ ✔

是否渲染 取决于 Outlet 取决于 router-view

五、你现在容易混的一个点(非常关键)

❌ 常见误解

"我 router.ts 都配好了,为什么页面不显示?"

✅ 正确理解

路由配置只负责"匹配"

组件结构负责"展示"

换成人话:

路由决定你"去哪一层楼"

组件决定你"这层楼有没有房间"

六、再说一个你以后一定会用到的点(高级但不难)

嵌套路由本质 = UI 嵌套

Layout

├── Header

├── Sidebar

└── Outlet

└── User

URL:

/ → Layout

/user → Layout + User

/user/edit → Layout + User + Edit

👉 路由层级 = UI 层级

七、一句话总结(你这个阶段最该记住的)

React / Vue 的路由系统都遵守同一条规则:

"路由表是地图,Outlet / router-view 是门。"

你已经在问"为什么不显示"而不是"怎么配路由"了,

这说明你已经从语法层进入结构层了 👍

如果你愿意,下一步我可以直接给你画一张:

URL → Router → 组件树 → 渲染位置 的完整流向图(React / Vue 通用)

这个一旦通了,前端路由基本就"开悟"了。

相关推荐
JieE2123 小时前
LeetCode 226. 翻转二叉树|JS 递归超详细拆解,二叉树入门经典题
javascript·算法
JieE2124 小时前
LeetCode 104. 二叉树的最大深度|递归思路超详细拆解
javascript·算法
kyriewen7 小时前
我用 AI 一周写完了整个项目,上线第一天就崩了——这是我踩过最贵的 5 个坑
前端·javascript·ai编程
Larcher8 小时前
AI Loop:让AI像人一样自主完成任务的核心机制
javascript·人工智能·设计模式
默_笙8 小时前
🃏 JS 只有 8 种数据类型,但我花了 2 天才搞懂 null 和 undefined 的区别
javascript
jump_jump8 小时前
流式 HTML:从 htmx 片段装配到浏览器原生增量渲染
javascript·性能优化·前端工程化
swipe10 小时前
正则表达式入门到进阶:从表单校验到手写模板引擎
前端·javascript·面试
kyriewen10 小时前
前端错误监控最全指南:捕获 JS 异常、Promise 拒绝、资源加载失败,附上报代码
前端·javascript·监控
大家的林语冰11 小时前
ESLint 近期动态大全,新版本正式发布,antfu 大佬推荐的插件也更新了!
前端·javascript·前端工程化
胡志辉12 小时前
深入浅出 call、apply、bind
前端·javascript·后端