You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

react-router-dom 如何匹配指定格式URL并获取对应路径参数

react-router-dom 路由匹配与参数获取方案

路由配置

你给出的URL结构统一为/detail/[动态参数]格式,直接用react-router-dom的动态路由规则配置即可,以下是当前主流v6版本的写法:

// 根路由配置文件
import { Routes, Route } from 'react-router-dom';
import Detail from './Detail';

function App() {
  return (
    <Routes>
      {/* :suffix 为动态参数占位符,可自定义命名 */}
      <Route path="/detail/:suffix" element={<Detail />} />
    </Routes>
  )
}

如果你用的是v5版本,配置写法如下:

import { Route } from 'react-router-dom';
import Detail from './Detail';

<Route path="/detail/:suffix" component={Detail} />

如果需要严格限制参数格式(只能为「字母串-数字串」的格式),可以在占位符后加正则约束:

// 仅匹配参数符合字母+横杠+数字规则的路径,不符合的会命中404
<Route path="/detail/:suffix([a-zA-Z]+-\d+)" element={<Detail />} />

参数获取

v6版本获取参数

在详情页组件中调用useParams钩子即可拿到动态参数:

// Detail 组件
import { useParams } from 'react-router-dom';

function Detail() {
  // 变量名要和路由配置里的占位符名称保持一致
  const { suffix } = useParams();
  // 此时suffix就是你需要的sbc-123、tresds-121212这类参数字符串
  console.log(suffix);

  return <div>当前详情参数:{suffix}</div>
}

v5版本获取参数

直接从组件props的match对象中提取即可:

function Detail(props) {
  const suffix = props.match.params.suffix;
  console.log(suffix);
  return <div>当前详情参数:{suffix}</div>
}

内容的提问来源于stack exchange,提问作者Santhosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:36:04