当前位置:首页 > React

react动态路由如何传参

2026-01-25 14:42:25React

React 动态路由传参方法

在 React 中,动态路由传参主要通过路由库(如 React Router)实现,以下是常见方法:

使用 useParams 钩子(React Router v5+)

在路由配置中定义参数占位符,通过 useParams 获取参数值:

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

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

通过 useLocation 的 search 参数

适用于 URL 查询参数(?key=value):

import { useLocation } from 'react-router-dom';
function SearchPage() {
  const location = useLocation();
  const searchParams = new URLSearchParams(location.search);
  const query = searchParams.get('q');
  return <div>Search Query: {query}</div>;
}

通过 useNavigate 传递 state

导航时通过 state 传递对象参数(不会暴露在 URL 中):

// 发送参数
import { useNavigate } from 'react-router-dom';
function Home() {
  const navigate = useNavigate();
  navigate('/profile', { state: { user: 'admin' } });
}

// 接收参数
import { useLocation } from 'react-router-dom';
function Profile() {
  const { state } = useLocation();
  return <div>User: {state.user}</div>;
}

类组件中的参数获取

对于类组件,可以通过 this.props.match.params 获取:

react动态路由如何传参

class Product extends React.Component {
  render() {
    const { id } = this.props.match.params;
    return <div>Product ID: {id}</div>;
  }
}
// 路由配置
<Route path="/product/:id" component={Product} />

注意事项

  • React Router v6 移除了 withRouter,推荐使用钩子替代
  • 查询参数 (?key=value) 需要通过 URLSearchParams 手动解析
  • state 传参在页面刷新后会丢失,适合临时数据传递

标签: 路由动态
分享给朋友:

相关文章

vue实现动态路由按钮

vue实现动态路由按钮

实现动态路由按钮的思路 动态路由按钮通常指根据用户权限或角色动态显示可访问的路由按钮。Vue中可通过路由配置、权限验证和动态渲染实现。 路由配置与权限标识 在路由配置中添加meta字段标识权限:…

vue路由实现

vue路由实现

Vue 路由实现 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是 Vue Router 的基本实现步骤和核心功能。 安装 Vue Router 通过…

vue路由实现iframe

vue路由实现iframe

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

vue路由实现介绍

vue路由实现介绍

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

elementui动态

elementui动态

ElementUI 动态组件与数据绑定 ElementUI 支持动态渲染组件和数据绑定,常用于表格、表单等场景的动态生成。通过 v-for 和动态属性绑定实现组件灵活配置。 动态生成表格列 <…

vue动态表格实现

vue动态表格实现

Vue动态表格实现方法 使用v-for指令渲染动态数据 通过v-for指令可以循环遍历数组数据生成表格行,数据变化时表格自动更新。示例代码: <template> <table…