【前端框架】路由配置

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

一句话先给结论:

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

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

相关推荐
炫饭第一名11 小时前
速通Canvas指北🦮——基础入门篇
前端·javascript·程序员
Forever7_12 小时前
Electron 淘汰!新的桌面端框架 更强大、更轻量化
前端·vue.js
不会敲代码112 小时前
前端组件化样式隔离实战:React CSS Modules、styled-components 与 Vue scoped 对比
css·vue.js·react.js
Angelial12 小时前
Vue3 嵌套路由 KeepAlive:动态缓存与反向配置方案
前端·vue.js
进击的尘埃12 小时前
Vue3 响应式原理:从 Proxy 到依赖收集,手撸一个迷你 reactivity
javascript
willow13 小时前
JavaScript数据类型整理1
javascript
LeeYaMaster13 小时前
20个例子掌握RxJS——第十一章实现 WebSocket 消息节流
javascript·angular.js
UIUV13 小时前
RAG技术学习笔记(含实操解析)
javascript·langchain·llm
SuperEugene14 小时前
Vue状态管理扫盲篇:如何设计一个合理的全局状态树 | 用户、权限、字典、布局配置
前端·vue.js·面试
阿懂在掘金14 小时前
defineModel 是进步还是边界陷阱?双数据源组件的选择逻辑
vue.js·源码阅读