当前位置:首页 > React

react的路由参数如何传递

2026-01-25 02:54:44React

路由参数传递方式

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

URL路径参数(动态路由)

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

react的路由参数如何传递

// 路由配置
<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解析:

react的路由参数如何传递

// 链接跳转
<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定义参数类型

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

相关文章

vue实现动态路由按钮

vue实现动态路由按钮

Vue 实现动态路由按钮的方法 动态路由按钮的实现通常涉及权限控制,根据用户角色或权限动态显示或隐藏路由按钮。以下是几种常见方法: 基于路由元信息(meta)和v-if控制 在路由配置中添加权限标识…

动态路由的实现vue

动态路由的实现vue

动态路由的实现(Vue) 在Vue中实现动态路由通常涉及以下方法: 基于路由参数(params) 在路由配置中使用动态片段(以冒号开头),例如: const routes = [ { pa…

vue实现户籍系统路由实现

vue实现户籍系统路由实现

Vue 实现户籍系统路由方案 户籍系统通常涉及多层级页面和权限控制,以下是基于 Vue Router 的实现方案: 路由模块配置 在 src/router/index.js 中定义路由结构: co…

vue路由实现iframe

vue路由实现iframe

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

vue路由实现介绍

vue路由实现介绍

Vue 路由基础概念 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。它通过动态映射 URL 到组件,实现无刷新页面切换。核心功能包括: 嵌套路由:支持多…

react路由如何使用

react路由如何使用

React 路由的基本使用 React 路由通常通过 react-router-dom 库实现,用于管理单页面应用(SPA)中的页面导航。 安装 react-router-dom: npm i…