当前位置:首页 > React

react如何拿到路由参数

2026-03-11 06:48:52React

获取路由参数的方法

在React中获取路由参数通常依赖于所使用的路由库。以下是两种常见路由库的获取方式:

使用React Router v5及以下版本

通过props.match.params获取动态路由参数:

react如何拿到路由参数

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

function UserPage(props) {
  const { id } = props.match.params; // 获取如/user/:id中的id
  return <div>User ID: {id}</div>;
}

<Route path="/user/:id" component={UserPage} />

通过useParams钩子(函数组件):

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

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

使用React Router v6

v6版本中useParams是主要API:

react如何拿到路由参数

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

function ProductPage() {
  const { productId } = useParams(); // 匹配路由如/product/:productId
  return <div>Product ID: {productId}</div>;
}

获取查询参数(URLSearchParams)

通过useLocation获取查询字符串:

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

function SearchPage() {
  const location = useLocation();
  const queryParams = new URLSearchParams(location.search);
  const keyword = queryParams.get('q');

  return <div>Search Keyword: {keyword}</div>;
}

类组件中获取参数

对于类组件,可通过withRouter高阶组件:

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

class ProfilePage extends React.Component {
  render() {
    const { username } = this.props.match.params;
    return <div>Username: {username}</div>;
  }
}

export default withRouter(ProfilePage);

注意事项

  • React Router v6不再支持withRouter,推荐使用函数组件+钩子的写法
  • 动态路由参数需要在路由配置中定义,如path="/post/:postId"
  • 查询参数(?key=value)需要通过URLSearchParams解析

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

相关文章

vue实现前端路由

vue实现前端路由

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

react如何传递参数

react如何传递参数

传递 props 给子组件 在父组件中通过属性名直接传递数据,子组件通过 props 对象接收。例如父组件传递 name 和 age: <ChildComponent name="John"…

vue实现hash路由

vue实现hash路由

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

vue实现tab路由

vue实现tab路由

Vue 实现 Tab 路由的方法 在 Vue 中实现 Tab 路由通常需要结合 Vue Router 和动态组件或条件渲染。以下是几种常见方法: 使用 Vue Router 动态路由 配置路由文件…

vue路由实现流程

vue路由实现流程

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

vue路由实现机制

vue路由实现机制

Vue 路由实现机制 Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。其核心机制包括路由匹配、导航守卫、动态路由等。 路由匹配 Vue Router 通过路由…