news 2026/8/21 7:52:34

React Router v7数据模式使用指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
React Router v7数据模式使用指南

React Router官方文档:https://reactrouter.com.cn/

react-router中路由模式分为:框架模式、 数据模式、声明式模式

以下仅为 * 数据模式 * 的使用笔记

  1. 安装 当前版本v7
npm install react-router
  1. 使用createBrowserRouter创建路由配置,支持普通路由和嵌套路由。router/index.js
import{createBrowserRouter}from"react-router";importIndexfrom"@/pages/Index";importUserfrom"@/page/User";importLoginfrom"@/page/Login";constrouter=createBrowserRouter([// 普通路由{path:"/",Component:Index,},// 嵌套路由{path:"/user",Component:User,children:[{// path: "login",index:true,// 默认路由Component:Login,},{path:"register",Component:Register,},]}]);exportdefaultrouter;
  1. 使用RouterProvider绑定路由 main.js
import{RouterProvider}from"react-router/dom";importrouterfrom"./router/index.js";createRoot(document.getElementById("root")).render(<StrictMode><Provider store={store}>{/* <App /> */}{/* 绑定路由 */}<RouterProvider router={router}/></Provider></StrictMode>);

组件内通过Outlet展示子路由,Link/NavLink实现导航

import{Outlet,Link}from"react-router";exportdefaultfunctionUser(){return(<div><h1>用户</h1><Link to="/user">登录</Link><Link to="/user/register">注册</Link>{/* 二级路由出口 */}<Outlet/></div>);}
  1. 路由导航
  • 4.1 Link
import{Link}from"react-router";<Link to="/">首页</Link><Link to="/about">关于</Link>
  • 4.2 NavLink 需要渲染活跃和待处理状态的导航链接
import{NavLink}from"react-router";<NavLink to="/messages"className={({isActive,isPending,isTransitioning})=>[isPending?"pending":"",isActive?"active":"",isTransitioning?"transitioning":"",].join(" ")}>Messages</NavLink>
  • 4.3 Form
<Form action="/search"><input type="text"name="q"/></Form>
  • 4.4 重定向redirect
import{redirect}from"react-router";exportasyncfunctionloader({request}){letuser=awaitgetUser(request);if(!user){returnredirect("/login");}return{userName:user.name};}
  • 4.5 编程式 useNavigate
import{useNavigate}from"react-router";exportfunctionuseLogoutAfterInactivity(){letnavigate=useNavigate();useFakeInactivityHook(()=>{// navigate("/logout");// 使用navigate函数并设置replace为true来替换当前历史记录navigate("/logout",{replace:true});});}
  • 4.6 路由导航传参 useSearchParams 、useParams
// 4.6.1 searchParams传参navigate("/user?id=123");// 取const[params]=useSearchParams();letid=params.get("id");// 4.6.2 params传参navigate("/user/123");// 取const[params]=useParams();letid=params.id;

Hooks解析

useLocation: 返回当前的 Location,包含有关 URL 路径的信息,以及可能的一些任意状态和键。

// 属性{"pathname":"/index",// URL 路径名,以 / 开头。"search":"",// URL 查询字符串,以 ? 开头。"hash":"",// URL 片段标识符,以 # 开头。"state":null,// 与此 location 关联的任意数据值。"key":"f5ecz0os"// 与此 location 关联的唯一字符串。 可用于在其他存储 API(如 localStorage)中安全地存储和检索数据。注意:此值在初始 location 上始终为 "default"。}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 16:32:28

为什么你的Docker Buildx推送总失败?90%开发者忽略的3个致命配置

第一章&#xff1a;Docker Buildx 的镜像推送Docker Buildx 是 Docker 的官方扩展工具&#xff0c;支持构建多平台镜像并直接推送到远程镜像仓库。通过 Buildx&#xff0c;开发者可以在单次构建过程中生成适用于不同 CPU 架构&#xff08;如 amd64、arm64&#xff09;的镜像&am…

作者头像 李华
网站建设 2026/8/16 17:32:56

React 组件通信

React组件通信方式总结&#xff1a;1&#xff09;父传子通过props单向传递数据&#xff0c;子组件不能直接修改&#xff1b;2&#xff09;子传父通过回调函数实现数据传递&#xff1b;3&#xff09;兄弟组件通过状态提升到共同父组件实现通信&#xff1b;4&#xff09;跨层组件…

作者头像 李华
网站建设 2026/8/21 6:38:39

时间序列预测实战:从维度冲突到完美增强的完整指南

时间序列预测实战&#xff1a;从维度冲突到完美增强的完整指南 【免费下载链接】Time-Series-Library A Library for Advanced Deep Time Series Models. 项目地址: https://gitcode.com/GitHub_Trending/ti/Time-Series-Library 你是否遇到过这样的情况&#xff1a;精心…

作者头像 李华
网站建设 2026/8/20 3:44:12

Node.js ES模块安全风险分析:顶层await在webshell中的隐蔽利用

Node.js ES模块安全风险分析&#xff1a;顶层await在webshell中的隐蔽利用 【免费下载链接】webshell This is a webshell open source project 项目地址: https://gitcode.com/gh_mirrors/we/webshell 随着Node.js对ES模块的全面支持&#xff0c;开发者享受到了现代化J…

作者头像 李华
网站建设 2026/8/21 9:20:00

从零开始学量子计算,手把手教你用VSCode调试Shor算法

第一章&#xff1a;从零开始理解Shor算法的核心原理Shor算法是量子计算领域最具突破性的成果之一&#xff0c;由彼得肖尔于1994年提出&#xff0c;能够高效分解大整数&#xff0c;从而对基于RSA的公钥密码体系构成潜在威胁。该算法的核心思想是将整数分解问题转化为周期查找问题…

作者头像 李华
网站建设 2026/8/21 2:45:55

Unity口型同步终极指南:从零实现自然语音动画

Unity口型同步终极指南&#xff1a;从零实现自然语音动画 【免费下载链接】LipSync LipSync for Unity3D 根据语音生成口型动画 支持fmod 项目地址: https://gitcode.com/gh_mirrors/lip/LipSync 还在为游戏角色说话时嘴唇僵硬而烦恼吗&#xff1f;LipSync为Unity开发者…

作者头像 李华