当前位置:首页 > 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 路由实现方法 安装 Vue Router 在项目中安装 Vue Router 依赖包: npm install vue-router 配置路由 在 src 目录下创建 router/inde…

vue实现前端路由

vue实现前端路由

Vue 前端路由实现方法 Vue 前端路由可以通过 vue-router 库实现,这是 Vue 官方推荐的路由解决方案。 安装 vue-router 通过 npm 或 yarn 安装 vue-rou…

vue路由实现登录

vue路由实现登录

路由守卫实现登录验证 在Vue项目中,可以通过路由守卫(Navigation Guards)来实现登录验证逻辑。路由守卫能在路由跳转前、跳转后或跳转时进行拦截处理。 安装路由依赖 npm inst…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

vue实现hash路由

vue实现hash路由

vue实现hash路由的基本原理 Vue实现hash路由主要依赖浏览器原生的hashchange事件和Vue的响应式系统。hash路由通过监听URL中#后面的变化来切换页面内容,无需向服务器发起请求。…

vue路由实现流程

vue路由实现流程

Vue 路由实现流程 安装 Vue Router 通过 npm 或 yarn 安装 Vue Router 依赖包: npm install vue-router 或 yarn add vue-ro…