当前位置:首页 > React

react route如何传参数

2026-03-31 13:45:06React

路由参数传递

在React Router中,可以通过URL路径传递参数。使用动态路由匹配,参数会被自动解析并可通过useParams钩子获取。

定义带参数的路由:

<Route path="/user/:id" element={<User />} />

在组件中获取参数:

import { useParams } from 'react-router-dom';

function User() {
  const { id } = useParams();
  return <div>User ID: {id}</div>;
}

查询参数传递

通过URL查询字符串传递参数,使用useSearchParams钩子获取和修改查询参数。

在组件中使用查询参数:

import { useSearchParams } from 'react-router-dom';

function Search() {
  const [searchParams, setSearchParams] = useSearchParams();
  const query = searchParams.get('q');

  return (
    <div>
      Search Query: {query}
      <button onClick={() => setSearchParams({ q: 'new' })}>
        Update
      </button>
    </div>
  );
}

状态参数传递

通过navigate函数的state选项传递参数,这些参数不会显示在URL中,但可以通过useLocation钩子获取。

react route如何传参数

传递状态参数:

import { useNavigate } from 'react-router-dom';

function Home() {
  const navigate = useNavigate();

  return (
    <button 
      onClick={() => navigate('/profile', { state: { fromHome: true } })}
    >
      Go to Profile
    </button>
  );
}

接收状态参数:

import { useLocation } from 'react-router-dom';

function Profile() {
  const location = useLocation();
  const { fromHome } = location.state || {};

  return <div>{fromHome ? 'From Home' : 'Not from Home'}</div>;
}

编程式导航传递参数

通过useNavigate钩子进行编程式导航时,可以传递参数。

传递路径参数:

react route如何传参数

const navigate = useNavigate();
navigate('/user/123');

传递查询参数:

navigate('/search?q=react');

传递状态参数:

navigate('/profile', { state: { user: 'admin' } });

获取路由参数

在类组件中获取路由参数,可以使用withRouter高阶组件或通过props获取。

使用withRouter

import { withRouter } from 'react-router-dom';

class User extends React.Component {
  render() {
    const { id } = this.props.match.params;
    return <div>User ID: {id}</div>;
  }
}

export default withRouter(User);

在函数组件中,推荐使用useParamsuseSearchParamsuseLocation钩子来获取各种类型的参数。

标签: 参数react
分享给朋友:

相关文章

react如何运行

react如何运行

运行React项目的步骤 安装Node.js 确保系统已安装Node.js(建议版本12以上),可从官网下载并安装。Node.js自带npm包管理器,用于后续依赖安装。 创建React项目 使用官方…

react如何动画

react如何动画

React 动画实现方法 React 中实现动画可以通过多种方式,包括原生 CSS、第三方库或 React 内置的动画解决方案。以下是几种常见方法: 使用 CSS 动画和过渡 通过 CSS 的 tr…

react 如何debug

react 如何debug

React 调试方法 使用 React Developer Tools React Developer Tools 是浏览器扩展,支持 Chrome 和 Firefox。安装后,可以在开发者工具中查看…

react如何扩展

react如何扩展

扩展 React 项目的常用方法 使用高阶组件(HOC) 高阶组件是一种复用组件逻辑的方式。通过包裹组件并注入额外属性或逻辑,可以实现功能扩展。例如,一个日志记录的高阶组件: function…

vscode如何配置react

vscode如何配置react

配置 VSCode 进行 React 开发 安装必要插件 ES7+ React/Redux/React-Native snippets:提供 React 代码片段快速生成功能。 Prettier -…

react如何重新加载

react如何重新加载

重新加载当前页面 在React中重新加载当前页面可以通过window.location.reload()方法实现。该方法会强制浏览器重新加载当前URL,类似于按下F5刷新页面。 const relo…