react如何获取路由中的值
获取路由参数的方法
在React中获取路由参数可以通过react-router-dom库实现。以下是几种常见的方式:
使用useParams钩子(React Router v5+)
import { useParams } from 'react-router-dom';
function UserPage() {
const { id } = useParams();
return <div>User ID: {id}</div>;
}
使用useLocation钩子获取查询参数

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>;
}
类组件中获取路由参数
import { withRouter } from 'react-router-dom';
class UserPage extends React.Component {
render() {
const { match } = this.props;
return <div>User ID: {match.params.id}</div>;
}
}
export default withRouter(UserPage);
动态路由配置
在路由配置中定义参数:

<Route path="/users/:id" component={UserPage} />
获取多个路由参数
当路由需要多个参数时:
<Route path="/products/:category/:id" component={ProductPage} />
// 在组件中
const { category, id } = useParams();
处理可选参数
使用问号表示可选参数:
<Route path="/docs/:section?/:subsection?" component={DocsPage} />
注意事项
- 确保组件被包裹在Router组件内
- 对于嵌套路由,参数会继承父路由的参数
- 使用TypeScript时可以为参数定义类型
- 参数值始终是字符串类型,需要时需手动转换
以上方法适用于大多数React路由场景,可以根据项目需求选择合适的方式。






