发布时间:2026/6/30 4:00:28
react动态路由、嵌套路由、路由传参方式
React 路由一般使用目前最主流的 React Routerv6/v7下面我会从动态路由、嵌套路由、路由传参三个方面详细讲解并配上完整代码。一、React Router 基础安装npm install react-router-dom项目结构src ├── App.jsx ├── main.jsx ├── router │ └── index.jsx ├── pages │ ├── Home.jsx │ ├── User.jsx │ ├── Detail.jsx │ ├── Layout.jsx │ └── NotFound.jsx配置路由// router/index.jsx import { createBrowserRouter } from react-router-dom; import Home from ../pages/Home; import User from ../pages/User; const router createBrowserRouter([ { path: /, element: Home / }, { path: /user, element: User / } ]) export default router;main.jsximport ReactDOM from react-dom/client; import { RouterProvider } from react-router-dom; import router from ./router; ReactDOM.createRoot(document.getElementById(root)).render( RouterProvider router{router} / );二、动态路由动态路由就是/user/1 /user/2 /user/100实际上都是同一个页面。配置{ path: /user/:id, element: User / }这里:id就是动态参数。获取参数使用useParams()import { useParams } from react-router-dom; function User(){ const { id } useParams(); return ( 用户ID {id} / ) } export default User;访问localhost:3000/user/100输出用户ID100多个动态参数例如/user/100/article/88配置{ path:/user/:uid/article/:aid, element:Article/ }获取const { uid, aid } useParams(); console.log(uid); console.log(aid);输出100 88三、嵌套路由重点例如后台系统首页 系统管理 用户管理 菜单管理 角色管理 商品管理 商品列表 商品分类这种就是嵌套路由。Layout页面import { Outlet } from react-router-dom; function Layout(){ return( h1后台系统/h1 hr/ Outlet/ / ) } export default Layout;Outlet就是子路由出口。相当于Vue中的router-view配置{ path:/, element:Layout/, children:[ { index:true, element:Home/ }, { path:user, element:User/ }, { path:article, element:Article/ } ] }最终访问/ 显示 Layout Home访问/user显示Layout User访问/article显示Layout Article多级嵌套/ 后台 用户 用户详情配置{ path:/, element:Layout/, children:[ { path:user, element:User/, children:[ { path::id, element:Detail/ } ] } ] }User.jsximport { Outlet } from react-router-dom; function User(){ return( 用户页面 Outlet/ / ) }访问/user/100页面Layout 用户页面 详情100四、路由传参重点React Router 常见有4 种方式。第一种params路径参数URL/user/100配置{ path:/user/:id, element:User/ }跳转import { Link } from react-router-dom; Link to/user/100 查看 /Link或者navigate(/user/100);获取const { id } useParams();优点SEO友好 URL清晰 推荐第二种query查询参数URL/user?id100nameTom跳转navigate(/user?id100nameTom);获取import { useSearchParams } from react-router-dom; const [searchParams] useSearchParams(); console.log(searchParams.get(id)); console.log(searchParams.get(name));输出100 Tom也可以navigate({ pathname:/user, search:?id100nameTom });第三种state推荐页面跳转URL/user看不到参数。跳转navigate(/user,{ state:{ id:100, name:Tom } });获取import { useLocation } from react-router-dom; const location useLocation(); console.log(location.state);输出{ id:100, name:Tom }优点地址栏没有参数 可以传对象 方便缺点刷新丢失第四种URL 参数 SearchParams推荐例如/user/100?tabarticletype1配置path:/user/:id获取const { id } useParams(); const [search] useSearchParams(); console.log(id); console.log(search.get(tab)); console.log(search.get(type));输出100 article 1五、编程式导航使用import { useNavigate } from react-router-dom; const navigate useNavigate();跳转navigate(/home);带参数navigate(/user/100);Querynavigate(/user?id1);Statenavigate(/user,{ state:{ id:1 } });返回上一页navigate(-1);返回两页navigate(-2);前进navigate(1);六、Link与NavLinkLink to/home首页/LinkLink只负责跳转。NavLink可以根据当前路由自动添加激活状态适合导航菜单import { NavLink } from react-router-dom; NavLink to/home className{({ isActive }) (isActive ? active : )} 首页 /NavLink七、React Router v6/v7 推荐实践在实际项目如后台管理系统中推荐采用以下组合场景推荐方式示例查看详情params/user/100筛选、分页、搜索query/user?page1keywordreact页面间临时传对象statenavigate(/user, { state: { user } })多级页面布局children Outlet/system/user/list页面导航useNavigatenavigate(/home)菜单导航NavLink自动高亮当前菜单总结动态路由通过:param定义路径参数使用useParams()获取适合资源标识如用户 ID、文章 ID。嵌套路由使用children配置子路由在父组件中通过Outlet渲染子页面适合后台管理系统和多级布局。路由传参paramsURL 路径参数适合详情页。query查询字符串适合搜索、筛选、分页。state隐藏于地址栏适合页面间临时传递对象但刷新后会丢失。params query兼顾资源定位和筛选条件是复杂业务中常见的组合。

相关新闻

2026年AI做PPT哪个工具好用?答辩汇报场景8款工具测评
2026/6/30 4:00:28

2026年AI做PPT哪个工具好用?答辩汇报场景8款工具测评

2026年AI做PPT哪个工具好用?答辩汇报场景8款工具测评答案是:2026年AI PPT工具已经相当成熟,但学术答辩场景需要选择能够生成专业、规范演示文稿的工具。PaperRed的AI PPT功能针对学术场景优化,支持自动生成答辩PPT、课程汇报PPT&a…

阅读更多
Codex使用教程完整版:从安装到实战,零基础快速掌握AI智能体
2026/6/30 3:00:28

Codex使用教程完整版:从安装到实战,零基础快速掌握AI智能体

Codex使用教程完整版:从安装到实战,零基础快速掌握AI智能体 SEO关键词: Codex教程 / Codex安装 / AI智能体 / Codex插件 / 自动化AI工具 / 零基础AI使用 大家好 这里是「代码简单说」,欢迎大家关注同名公众号,不定时更新更多实用有趣的教程 …

阅读更多
Mybatis基础操作
2026/6/30 3:00:28

Mybatis基础操作

Mybatis基础使用 Mybatis编程式开发 mybatis和MySQL jar包依赖 xml <dependencies><!-- MyBatis 核心 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.10</version>&…

阅读更多
前端音视频处理入门
2026/6/30 5:00:28

前端音视频处理入门

前端音视频处理入门&#xff1a;探索多媒体开发的奥秘 在当今数字化时代&#xff0c;音视频内容已成为互联网的重要组成部分。无论是短视频平台、在线会议工具&#xff0c;还是直播应用&#xff0c;前端音视频处理技术都扮演着关键角色。对于开发者来说&#xff0c;掌握前端音…

阅读更多
Rust Trait 泛型协作实现细节
2026/6/30 5:00:28

Rust Trait 泛型协作实现细节

Rust语言以其独特的所有权系统和零成本抽象著称&#xff0c;而Trait与泛型的协作机制正是实现这些特性的核心支柱。这种设计不仅保证了类型安全&#xff0c;还通过编译期多态大幅提升运行时效率。本文将深入剖析Trait与泛型协作的实现细节&#xff0c;揭示Rust如何在保持高性能…

阅读更多
完全纯小白,从基本名词,到理解反序列化漏洞原理,到pop链构造
2026/6/30 5:00:28

完全纯小白,从基本名词,到理解反序列化漏洞原理,到pop链构造

一&#xff0c;定义序列化&#xff1a;把内存中的“活”对象&#xff08;数据&#xff09;&#xff0c;转换成字节流&#xff08;或JSON、XML等文本格式&#xff09;&#xff0c;以便存储或传输。反序列化&#xff1a;把字节流还原成内存中可用的对象。二&#xff0c;具体化理解…

阅读更多
Python Web 框架对比:Django vs Flask vs FastAPI
2026/6/30 5:00:28

Python Web 框架对比:Django vs Flask vs FastAPI

Python Web 框架对比&#xff1a;Django vs Flask vs FastAPI 在Python的Web开发领域&#xff0c;Django、Flask和FastAPI是三大热门框架&#xff0c;各自拥有独特的优势和适用场景。无论是构建全功能的企业级应用、轻量级微服务&#xff0c;还是高性能API&#xff0c;选择合适…

阅读更多
为什么照片直播能做到「边拍边传」?我把整个技术架构拆开了(附实现思路)
2026/6/30 5:00:28

为什么照片直播能做到「边拍边传」?我把整个技术架构拆开了(附实现思路)

如果你参加过婚礼、马拉松、演唱会或者企业年会&#xff0c;你应该见过这种场景&#xff1a;摄影师刚按下快门。不到几秒。手机扫码。照片已经出现在相册里。很多人觉得&#xff1a;这是云相册。或者&#xff1a;AI 修图。实际上&#xff0c;这两个都只是最后一步。真正决定体验…

阅读更多
AI 专业万字干货|发那科 ROBOGUIDE 离线仿真全实训路线|数字孪生 + 机器视觉融合落地实践
2026/6/30 4:00:28

AI 专业万字干货|发那科 ROBOGUIDE 离线仿真全实训路线|数字孪生 + 机器视觉融合落地实践

摘要作为人工智能技术应用专业在校生&#xff0c;多数同学深耕深度学习、机器视觉算法&#xff0c;但普遍缺失工业设备虚实联动落地能力。工业机器人是智能制造场景下 AI 算法唯一物理执行载体&#xff0c;而 ROBOGUIDE 作为发那科官方数字孪生离线仿真平台&#xff0c;可零成本…

阅读更多
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告
2026/6/28 0:00:11

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月&#xff0c;Boris Cherny 公开宣布自己卸载了 IDE。一时间&#xff0c;Vibe Coding 成了全行业最热的话题。6个月后&#xff0c;当我们回过头来拉一份真实账本&#xff0c;发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

阅读更多
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?
2026/6/28 0:00:11

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言&#xff1a;审计结束三个月了&#xff0c;审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间&#xff0c;内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中&#xff0c;审计…

阅读更多
如何在1分钟内为Windows安装苹果USB网络共享驱动:完整解决方案
2026/6/30 0:00:27

如何在1分钟内为Windows安装苹果USB网络共享驱动:完整解决方案

如何在1分钟内为Windows安装苹果USB网络共享驱动&#xff1a;完整解决方案 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.co…

阅读更多
AScript异步执行与await关键字
2026/6/30 0:00:27

AScript异步执行与await关键字

、异步解析执行 AScript提供了 Script.EvalAsync 异步方法&#xff0c;异步执行脚本&#xff0c;可设置 CancellationToken 参数。 AScript执行模式有解析执行和编译执行两种模式&#xff0c;这两种模式下的异步执行又有所不同&#xff1a; 1&#xff09;解析执行模式&#…

阅读更多
AI时代真的风水轮流转,前段时间最火的还是Claude Code,转眼间Codex就火得一塌糊涂。Codex是由OpenAI 推出的AI智能体。
2026/6/30 0:00:27

AI时代真的风水轮流转,前段时间最火的还是Claude Code,转眼间Codex就火得一塌糊涂。Codex是由OpenAI 推出的AI智能体。

它不仅能回答问题&#xff0c;编写代码&#xff0c;还能读取电脑本地文件&#xff0c;修改项目&#xff0c;浏览网页&#xff0c;调用外部工具&#xff0c;自动化执行任务&#xff0c;操作浏览器甚至桌面应用。 也是早早的就给身边不是程序员的亲朋好友安利了&#xff0c;都是用…

阅读更多
GIT修改用户名
2026/6/28 5:47:46

GIT修改用户名

在GIT中修改用户名可按以下步骤操作&#xff1a; 查看当前git的用户名&#xff0c;使用命令git config --list或git config user.name。修改git用户名&#xff0c;使用命令git config --global user.name "xxx&#xff08;新的用户名&#xff09;"&#xff0c;将其中…

阅读更多
Win11Debloat:让你的Windows系统重获新生的终极优化工具
2026/6/28 14:44:43

Win11Debloat:让你的Windows系统重获新生的终极优化工具

Win11Debloat&#xff1a;让你的Windows系统重获新生的终极优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …

阅读更多
技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践
2026/6/28 14:44:39

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践

技术深度解析&#xff1a;m4s-converter实现原理与B站缓存视频转换最佳实践 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个…

阅读更多