React中的路由跳转及传参

作者:暴富20212024.02.04 15:30浏览量:8

简介:在React中,路由跳转和传参是常见的需求。本文将介绍如何在React中进行路由跳转和如何传递参数。

在React中,我们通常使用react-router-dom库来实现路由功能。首先,需要安装该库,可以使用npm或yarn进行安装。接下来,我们将介绍如何在React中进行路由跳转和如何传递参数。
路由跳转
在React中,我们可以通过Link组件进行路由跳转。首先,需要在需要跳转的页面导入import { Link } from 'react-router-dom'。然后,在需要跳转的地方使用<Link to={'/目标路由'}>跳转</Link>进行跳转。其中,to属性指定了目标路由的路径。
另外,我们还可以使用history对象进行编程式跳转。首先,需要在需要跳转的组件中导入import { useHistory } from 'react-router-dom'。然后,使用useHistory hook 获取到 history 对象,调用其 push 方法进行跳转。例如:

  1. import { useHistory } from 'react-router-dom';
  2. function MyComponent() {
  3. const history = useHistory();
  4. const handleClick = () => {
  5. history.push('/目标路由');
  6. };
  7. return <button onClick={handleClick}>跳转</button>;
  8. }

传递参数
在React中,我们可以使用路由的state属性来传递参数。例如,我们可以在跳转时给Link组件添加state属性,该属性的值将被添加到目标路由的location.state中。例如:

  1. <Link to={'/目标路由'} state={{ userId: 123 }}>跳转</Link>

在目标组件中,我们可以使用this.props.location.state.userId来获取传递的参数。例如:

  1. function MyComponent({ location }) {
  2. const userId = location.state.userId;
  3. // ...
  4. }

另外,我们还可以使用路由的params属性来传递参数。例如,我们可以在目标路由的路径中使用:id来表示参数,然后在目标组件中通过this.props.match.params.id来获取传递的参数。例如:

  1. <Link to={'/目标路由/123'}>跳转</Link>

在目标组件中:

  1. function MyComponent({ match }) {
  2. const userId = match.params.id;
  3. // ...
  4. }

需要注意的是,在使用编程式跳转时,我们需要手动将参数添加到目标路径中。例如:

  1. history.push({ pathname: '/目标路由', state: { userId: 123 } });