当前位置:首页 > React

react如何过去路由信息

2026-01-25 11:14:34React

获取当前路由信息

在React中获取当前路由信息通常依赖于路由库。React Router是最常用的路由解决方案,提供多种方式访问路由数据。

使用useLocation钩子

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

function Component() {
  const location = useLocation();
  console.log(location.pathname); // 当前路径
  console.log(location.search);   // 查询参数
  console.log(location.hash);     // hash值
  console.log(location.state);    // 路由状态对象
}

使用useParams获取动态参数

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

function UserPage() {
  const params = useParams();
  console.log(params.id); // 获取如/user/:id中的id值
}

获取路由匹配信息

使用useMatch钩子

react如何过去路由信息

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

function Component() {
  const match = useMatch('/users/:id');
  console.log(match?.params.id); // 匹配到的动态参数
}

类组件中获取路由

对于类组件,可以使用高阶组件withRouter(React Router v5及以下):

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

class MyComponent extends React.Component {
  componentDidMount() {
    console.log(this.props.location);
    console.log(this.props.match);
  }
}

export default withRouter(MyComponent);

获取路由历史对象

使用useNavigate钩子(React Router v6)

react如何过去路由信息

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

function Component() {
  const navigate = useNavigate();
  // 可以编程式导航并传递状态
  navigate('/new-path', { state: { data: 123 } });
}

获取查询参数

手动解析URLSearchParams

const query = new URLSearchParams(location.search);
const page = query.get('page'); // 获取?page=123中的123

使用第三方库如query-string

import queryString from 'query-string';

const parsed = queryString.parse(location.search);
console.log(parsed.page);

路由上下文访问

在深层子组件中,可以通过React Router的上下文直接访问:

import { useContext } from 'react';
import { __RouterContext } from 'react-router-dom';

function DeepChild() {
  const { location, match } = useContext(__RouterContext);
  // 使用路由数据
}

注意:React Router v6主要推荐使用钩子API,v5及以下版本兼容类组件方式。实际使用时需根据项目使用的路由版本选择对应方法。

标签: 路由过去
分享给朋友:

相关文章

vue路由实现内部切换

vue路由实现内部切换

Vue路由实现内部切换的方法 Vue Router是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。以下是几种常见的路由切换方式: 使用<router-link>组件 &l…

vue实现户籍系统路由实现

vue实现户籍系统路由实现

Vue 实现户籍系统路由方案 户籍系统通常涉及多层级页面和权限控制,以下是基于 Vue Router 的实现方案: 路由模块配置 在 src/router/index.js 中定义路由结构: co…

react路由如何刷新

react路由如何刷新

React 路由刷新方法 在 React 中,路由刷新通常涉及以下几种场景和解决方案: 强制重新加载当前页面 使用 window.location.reload() 可以强制刷新整个页面,但会丢失…

vue实现前端路由

vue实现前端路由

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

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue…

Vue中实现路由

Vue中实现路由

Vue 路由的实现方法 在 Vue 中实现路由通常使用 Vue Router 库。以下是具体的实现步骤: 安装 Vue Router 通过 npm 或 yarn 安装 Vue Router:…