当前位置:首页 > React

react如何获取路由

2026-01-15 08:54:46React

获取当前路由路径

在React中获取当前路由路径可以通过react-router-dom提供的useLocation钩子。useLocation返回一个包含当前路由信息的对象,其中pathname属性即为当前路径。

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

function ExampleComponent() {
  const location = useLocation();
  console.log(location.pathname); // 输出当前路径如 "/about"
}

获取路由参数

对于动态路由(如/user/:id),可以通过useParams钩子获取参数。该钩子返回一个包含所有动态参数键值对的对象。

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

function UserProfile() {
  const params = useParams();
  console.log(params.id); // 若路径为 "/user/123",输出 "123"
}

获取查询字符串

若需解析URL中的查询字符串(如?name=John&age=20),可使用useSearchParams钩子。它返回一个包含当前查询参数的对象和更新函数。

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

function SearchPage() {
  const [searchParams] = useSearchParams();
  console.log(searchParams.get('name')); // 输出 "John"
}

编程式导航

通过useNavigate钩子可以实现编程式路由跳转,并传递状态参数。navigate函数支持路径字符串或配置对象。

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

function NavigateButton() {
  const navigate = useNavigate();

  const handleClick = () => {
    navigate('/dashboard', { state: { from: 'home' } });
  };
}

类组件中的路由信息

在类组件中获取路由信息需使用高阶组件withRouter(v5及以下版本)或通过props传递路由属性。

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

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

export default withRouter(ClassComponent);

监听路由变化

通过useEffect结合useLocation可以监听路由变化并执行副作用操作。依赖项需包含location.pathname

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

function RouteListener() {
  const location = useLocation();

  useEffect(() => {
    console.log('Route changed to:', location.pathname);
  }, [location.pathname]);
}

react如何获取路由

标签: 路由react
分享给朋友:

相关文章

vue实现动态路由按钮

vue实现动态路由按钮

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

react如何记忆

react如何记忆

React 记忆技术 在 React 中,记忆(Memoization)是一种优化技术,用于避免不必要的重新渲染或计算。React 提供了多种内置方法和第三方库来实现记忆功能。 useMemo H…

如何降低react版本

如何降低react版本

降低 React 项目版本的步骤 检查当前 React 版本 在项目根目录的 package.json 文件中查看 dependencies 或 devDependencies 下的 react 和…

vue路由实现iframe

vue路由实现iframe

在Vue中实现iframe嵌入可以通过路由配置和组件动态加载来完成。以下是具体实现方法: 路由配置 在Vue Router的路由配置中,通过component属性动态加载iframe组件。需要将目标…

vue实现前端路由

vue实现前端路由

Vue 实现前端路由的方法 Vue 可以通过 Vue Router 实现前端路由管理。以下是具体实现步骤: 安装 Vue Router 通过 npm 或 yarn 安装 Vue Router:…

vue实现路由跳转

vue实现路由跳转

Vue 路由跳转的实现方式 在 Vue 中,路由跳转可以通过 vue-router 实现,以下是几种常见的方法: 声明式导航(模板中使用 <router-link>) 通过 <ro…