【前端框架】路由配置

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

一句话先给结论:

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

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

相关推荐
2501_944521591 天前
Ramda 跨端三方库仓颉适配全流程
开发语言·javascript·flutter·php
Ken_11151 天前
小体积附件下载正常,大附件下载异常
javascript
变与不变8061 天前
jQuery怎么使用
前端·javascript
paopaokaka_luck1 天前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
仰望.1 天前
vue 表格组件 vxe-table 树表格懒加载支持拖拽排序的详细用法
前端·javascript·vue.js·vxe-table
程序员初一1 天前
我把跑了两年 WordPress 的机器重装了一遍,顺便把面板卸了
javascript
kyriewen1 天前
别再用防抖做懒加载了:120 张图只加载出 4 张
前端·javascript·程序员
CodeMi1 天前
2026 CSS 接管了这些 JS 的活:6 个 Baseline 特性的落地取舍
javascript·css
康小旺2 天前
AI 写 Vue 总写成同一个味道:给它装 Skills,装的不是知识是边界
vue.js·typescript
全栈项目管理程序猿2 天前
ArcGIS JS 基础教程(35):体元系列 - VoxelLayer 时间维度动画
前端·javascript