【前端框架】路由配置

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

一句话先给结论:

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 通用)

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

相关推荐
threerocks8 小时前
AI 原生软件开发生命周期手册 - 如何借助 AI,逐阶段改造软件开发生命周期
前端·javascript·后端
ly768910 小时前
JavaScript 从入门到进阶:核心语法、异步编程与工程化实践
开发语言·javascript·ecmascript
学习星球10 小时前
Qwik 框架入门实战:从开源项目 Qwik City 开始,用可恢复性替代水合
后端·前端框架·开源·c5全栈
剑胆琴心静水深流11 小时前
全栈之路6---web集成与呈现
前端·vue.js·spring boot·分布式·spring·前端框架·npm
沙盘客12 小时前
AFSIM 示例解读(03)· 六自由度飞行仿真 six_dof(下):机场运作与弹道导弹投送
java·javascript·经验分享
默_笙13 小时前
👍 我的代码被 ESLint 抓包了:单引号、var、没分号——全被当场点名
前端·javascript
oh,huoyuyan14 小时前
JS 动态网页抓不到?试试火车采集器网页抓取工具
开发语言·javascript·ecmascript
汉堡大王952715 小时前
用 Trae Work 自动化任务,6 分钟生成一份前端生态周报
前端·javascript·人工智能
章鱼小丸子逃跑中15 小时前
【2025最新版】如何将fnm与node.js安装在D盘?【保姆级安装及人性话理解教程】
前端·javascript·npm·node.js
CAD老兵17 小时前
在浏览器里对比 DWG/DXF 图纸 —— @mlightcad/cad-diff-viewer
前端·javascript·github