千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:重庆千锋IT培训  >  技术干货  >  react路由传参是什么?如何获取?

react路由传参是什么?如何获取?

来源:千锋教育
发布人:lxl
时间: 2023-05-09 14:09:13

react路由传参

  路由参数(params形式)

  路由参数是将参数嵌入到 URL 中的一种方式。在 React Router 6 中,我们可以通过在路由路径中使用冒号来定义参数

  定义

<Route path="/users/:id" element={<UserDetails />} />

   获取

  我们定义了一个名为 id 的参数,它可以在 URL 中的 /:id 部分找到。当用户访问 /users/123 时,123 将成为路由参数,并可以在组件中通过 useParams 钩子函数访问。

function UserDetails() {
const { id } = useParams();
// ...
}

   2、查询参数(search形式)

  查询参数是在 URL 中使用问号传递的一种参数。在 React Router 6 中,我们可以通过在 URL 中添加查询参数来传递参数

  定义

<Link to="/users?id=123">User Details</Link>

   获取

  我们向 /users 页面传递了一个名为 id 的查询参数,并将其设置为 123。我们可以在组件中使用 useLocation 钩子函数获取当前 URL 中的查询参数,并使用 URLSearchParams 对象来解析它们

function UserDetails() {
const searchParams = useSearchParams();
// 使用URLSearchParams这个对象解析url的search,然后直接获取id
const id = searchParams.get('id');
// ...
}

   3、状态对象

  状态对象是一种可以在导航期间传递数据的机制。在 React Router 6 中,我们可以在 navigate 函数中使用第二个参数来传递状态对象

  定义

function handleClick() {
navigate('/users', { state: { id: 123 } });
}

   获取

  我们在导航到 /users 页面时传递了一个名为 id 的状态对象。我们可以在组件中使用 useLocation 钩子函数获取当前 URL 中的状态对象

function UserDetails() {
const location = useLocation();
const { id } = location.state;
// ...
}

   注意

  使用状态对象传递数据会将数据存储在浏览器的会话历史中,因此它仅适用于页面之间的相邻导航。如果用户从当前页面返回到其他页面,状态对象中的数据将被清除。如果需要在不同页面之间共享数据,最好使用其他的数据传递方式,如 Redux 或 Context API

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

如何进行mysql数据备份?

2023-05-30

从零开始学Java之Java中的内部类是怎么回事?

2023-05-29

什么是事件流以及事件流的传播机制 ?

2023-05-29

最新文章NEW

什么是servlet的生命周期?servlet请求处理流程是怎样的?

2023-05-30

在java中,super关键字怎样使用

2023-05-29

什么是JavaScript伪数组?

2023-05-25

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>