react 函数组件路由跳转传参
在React开发中,路由跳转是常见的操作,而传递参数可以使得页面动态地展示数据,又常常遇到的问题,本文将主要介绍React函数组件如何进行路由跳转并传递参数。
一、通过react-router-dom进行路由跳转
在React项目中,我们常常使用react-router-dom来管理路由。在函数组件中,我们可以通过 useHistory 和 useLocation 来实现路由跳转。
1. useHistory 用于编程方式进行路由跳转。
useHistory通过hook的方式让我们可以在函数组件内访问history对象。
```
import { useHistory } from 'react-router-dom';
function YourComponent() {
let history = useHistory();
function handleClick() {
history.push('/path');
}
return (
<button type="button" onClick={handleClick}>
Go somewhere
</button>
);
}
```
在上面的代码中,我们首先导入useHistory hook,然后通过调用useHistory,得到访问React Router中history对象的权限。接着,我们创建了一个 handleClick 函数,当用户点击该组件时,将会调用此函数来使其跳转到指定路径的页面。
2. useLocation 用于获取当前页面的location对象。
我们可以通过location对象来获取当前页面的URL信息,如 pathname 、 search 、 hash 等等。
3. useParams 用于从路由中获取URL参数。
如果我们需要从URL中获取参数,我们需要用到 useParams。useParams让我们可以访问路径参数(path parameters),例如,/post/1 中的1。
在上面的代码中,我们通过useParams来获取 URL 参数中的id值。在实际应用中,可根据需要来进行操作。
二、路由跳转并传递参数
react组件之间通信 1. 通过useHistory 和useLocation来进行路由跳转并传递参数
第一步:设置一个搜索字符串。
```
const search = '?name=john&age=25';
```
第二步:在useHistory hook中传递搜索字符串。
在上面的代码中,我们定义了一个名为search的字符串,其中包含两个参数name和age。然后,我们使用useHistory访问history对象,并将一个对象作为参数传递给history.push方法。该对象包括pathname和search属性,以指示我们要将带有搜索参数的路由推入堆栈。
在上面的代码中,我们使用useLocation钩子来识别当前位置。我们可以从location对象中获取当前路径并通过调用location.search方法获取当前页面的搜索字符串
2. 通过路由参数传递参数
如果我们要将数据传递给组件并进行渲染,我们需要使用路由参数。路由参数也称为路径参数(Path parameters),可以在路由路径中通过“:”形式指定。
第一步:在 Route 组件中指定路由参数。
```
import React from "react";
import { Route } from "react-router-dom";
import ComponentWithProps from "./ComponentWithProps";
在上面的代码中,我们指定了一个带有:id变量的路由。如果我们访问 /user/10 ,我们将获取 id = 10 的用户信息。
export default ComponentWithProps;
```
三、总结
React Router让我们可以快速地创建并导航到不同的视图,这对创建SPA应用程序非常重要。对于开发者来说,了解如何使用路由和传递参数是非常有帮助的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论