首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

React-router v7 第四章(路由传参)

  • 25-04-18 02:20
  • 2921
  • 5712
juejin.cn

参数传递

React-router 一共有三种方式进行参数传递,参数传递指的是在路由跳转时,将参数传递给目标路由。

Query方式

Query的方式就是使用 ? 来传递参数,例如:

bash
代码解读
复制代码
#多个参数用 & 连接 /user?name=小满zs&age=18

跳转方式:

tsx
代码解读
复制代码
<NavLink to="/about?id=123">About</NavLink> //1. NavLink 跳转 123">About //2. Link 跳转 import { useNavigate } from 'react-router' const navigate = useNavigate() navigate('/about?id=123') //3. useNavigate 跳转

获取参数:

tsx
代码解读
复制代码
//1. 获取参数 import { useSearchParams } from 'react-router' const [searchParams, setSearchParams] = useSearchParams() console.log(searchParams.get('id')) //获取id参数 //2. 获取参数 import { useLocation } from 'react-router' const { search } = useLocation() console.log(search) //获取search参数 ?id=123

Params方式

Params的方式就是使用 :[name] 来传递参数,例如:

bash
代码解读
复制代码
/user/:id

跳转方式:

tsx
代码解读
复制代码
<NavLink to="/user/123">User</NavLink> //1. NavLink 跳转 123">User //2. Link 跳转 import { useNavigate } from 'react-router' const navigate = useNavigate() navigate('/user/123') //3. useNavigate 跳转

获取参数:

tsx
代码解读
复制代码
import { useParams } from 'react-router' const { id } = useParams() console.log(id) //获取id参数

State方式

state在URL中不显示,但是可以传递参数,例如:

bash
代码解读
复制代码
/user

跳转方式:

tsx
代码解读
复制代码
<Link to="/user" state={{ name: '小满zs', age: 18 }}>User</Link> //1. Link 跳转 " state={{ name: '小满zs', age: 18 }}>User //2. NavLink 跳转 import { useNavigate } from 'react-router' const navigate = useNavigate() navigate('/user', { state: { name: '小满zs', age: 18 } }) //3. useNavigate 跳转

获取参数:

tsx
代码解读
复制代码
import { useLocation } from 'react-router' const { state } = useLocation() console.log(state) //获取state参数 console.log(state.name) //获取name参数 console.log(state.age) //获取age参数

总结

React Router 提供了三种参数传递方式,各有特点:

1. Params 方式 (/user/:id)

  • 适用于:传递必要的路径参数(如ID)
  • 特点:符合 RESTful 规范,刷新不丢失
  • 限制:只能传字符串,参数显示在URL中

2. Query 方式 (/user?name=xiaoman)

  • 适用于:传递可选的查询参数
  • 特点:灵活多变,支持多参数
  • 限制:URL可能较长,参数公开可见

3. State 方式

  • 适用于:传递复杂数据结构
  • 特点:支持任意类型数据,参数不显示在URL
  • 限制:刷新可能丢失,不利于分享

选择建议:必要参数用 Params,筛选条件用 Query,临时数据用 State。

注:本文转载自juejin.cn的小满zs的文章"https://juejin.cn/post/7493730335194087436"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top