当前位置:首页 > React

react的路由参数如何传递

2026-01-25 02:54:44React

路由参数传递方式

在React中,路由参数传递通常通过React Router库实现。以下是常见的几种方式:

URL路径参数(动态路由)

通过冒号:param在路由路径中定义参数,组件通过useParams获取:

// 路由配置
<Route path="/user/:id" element={<UserPage />} />

// 组件内获取
import { useParams } from 'react-router-dom';
function UserPage() {
  const { id } = useParams();
  return <div>User ID: {id}</div>;
}

查询参数(Query String)

通过URLSearchParams或第三方库如query-string解析:

// 链接跳转
<Link to="/search?keyword=react&page=1">Search</Link>

// 组件内获取
import { useLocation } from 'react-router-dom';
function SearchPage() {
  const location = useLocation();
  const params = new URLSearchParams(location.search);
  const keyword = params.get('keyword');
  return <div>Searching: {keyword}</div>;
}

状态参数(State)

通过state属性传递对象,不会暴露在URL中:

// 跳转时传递
<Link 
  to="/profile" 
  state={{ fromDashboard: true, userId: 123 }}
>
  Profile
</Link>

// 组件内获取
import { useLocation } from 'react-router-dom';
function Profile() {
  const { state } = useLocation();
  return <div>From Dashboard: {state?.fromDashboard}</div>;
}

编程式导航传递

通过useNavigate钩子实现:

import { useNavigate } from 'react-router-dom';
function NavigateButton() {
  const navigate = useNavigate();

  const handleClick = () => {
    // 路径参数
    navigate('/user/123');

    // 路径+查询参数
    navigate('/search?q=react');

    // 路径+状态
    navigate('/profile', { state: { user: 'admin' } });
  };

  return <button onClick={handleClick}>Navigate</button>;
}

注意事项

  • 路径参数适合必要标识(如资源ID),查询参数适合可选过滤条件
  • 状态参数在页面刷新后会丢失,适合临时数据
  • React Router v6及以上版本使用useParams替代旧版的match.params
  • 类型安全考虑可结合TypeScript定义参数类型

react的路由参数如何传递

标签: 路由参数
分享给朋友:

相关文章

vue路由实现思路

vue路由实现思路

Vue 路由实现思路 Vue 路由的核心是通过 Vue Router 库实现的单页面应用(SPA)路由管理。以下是关键实现思路和步骤: 安装 Vue Router 通过 npm 或 yarn 安装…

vue实现路由跳转

vue实现路由跳转

Vue 路由跳转的实现方式 在 Vue 中,路由跳转可以通过 vue-router 实现,以下是几种常见的方法: 声明式导航(模板中使用 <router-link>) 通过 <ro…

vue实现路由

vue实现路由

Vue 路由的实现方法 Vue 中实现路由通常使用 Vue Router 库。以下是具体的实现步骤: 安装 Vue Router 在项目中通过 npm 或 yarn 安装 Vue Router:…

vue路由实现iframe

vue路由实现iframe

Vue 路由实现 iframe 的方法 在 Vue 项目中,可以通过路由配置和组件的方式实现 iframe 的嵌入。以下是具体实现步骤: 创建 iframe 组件 新建一个 Vue 组件用于承载…

Vue实现路由监

Vue实现路由监

Vue 实现路由监听的方法 在 Vue 中可以通过多种方式实现路由监听,以下是常见的几种方法: 使用 watch 监听 $route 对象 通过 Vue 的 watch 功能可以监听 $route…

react路由如何配置

react路由如何配置

React 路由配置方法 安装 React Router 使用 npm 或 yarn 安装 React Router 的 DOM 版本: npm install react-router-dom…