当前位置:首页 > React

react 如何再次调用路由

2026-01-24 17:23:04React

在 React 中再次调用路由

React 中可以通过 react-router-dom 提供的 API 来实现路由的再次调用或导航。以下是几种常见方法:

使用 useNavigate Hook

在函数组件中,可以通过 useNavigate Hook 实现编程式导航:

react 如何再次调用路由

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

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

  const handleClick = () => {
    // 跳转到指定路径
    navigate('/target-path');
    // 或带状态跳转
    navigate('/target-path', { state: { key: 'value' } });
  };

  return <button onClick={handleClick}>跳转</button>;
}

使用 useHistory (v5 及以下版本)

如果是 react-router-dom v5 或更早版本,可以通过 useHistory

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

function MyComponent() {
  const history = useHistory();

  const handleClick = () => {
    history.push('/target-path');
    // 或替换当前路由
    history.replace('/target-path');
  };

  return <button onClick={handleClick}>跳转</button>;
}

通过 <Link><NavLink> 组件

声明式导航可以直接使用内置组件:

react 如何再次调用路由

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

function MyComponent() {
  return (
    <Link to="/target-path">跳转</Link>
    // 或带参数
    <Link to={{ pathname: '/target-path', state: { key: 'value' } }}>跳转</Link>
  );
}

强制刷新当前路由

如果需要重新加载当前路由(包括重新执行数据获取),可以通过组合 useNavigateuseLocation 实现:

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

function RefreshCurrentRoute() {
  const navigate = useNavigate();
  const location = useLocation();

  const reload = () => {
    navigate(location.pathname, { replace: true });
    window.location.reload(); // 可选:完全刷新页面
  };

  return <button onClick={reload}>刷新当前页</button>;
}

路由重定向

在组件渲染逻辑中可以通过 <Navigate> 组件实现条件重定向:

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

function ProtectedRoute({ isAuth }) {
  if (!isAuth) {
    return <Navigate to="/login" replace />;
  }
  return <div>Protected Content</div>;
}

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

相关文章

react 如何引入jquery

react 如何引入jquery

引入 jQuery 到 React 项目 在 React 项目中引入 jQuery 可以通过多种方式实现,但需要注意 React 和 jQuery 操作 DOM 的方式可能冲突,因此建议仅在必要时使用…

如何优化react

如何优化react

优化 React 性能的方法 使用 React.memo 或 PureComponent 对于函数组件,使用 React.memo 进行记忆化,避免不必要的重新渲染。类组件可以使用 PureCompo…

react如何卸载

react如何卸载

卸载 React 项目或依赖 如果需要完全卸载 React 项目或相关依赖,可以按照以下步骤操作: 删除项目文件夹 直接删除整个项目文件夹是最彻底的方式。确保已备份重要代码或配置文件。 卸载全局安…

如何启动react

如何启动react

安装Node.js 确保系统已安装Node.js(建议使用LTS版本),可通过官网下载并安装。安装完成后,在终端运行以下命令验证版本: node -v npm -v 创建React项目 使用官方工具…

react 如何跳转

react 如何跳转

使用 React Router 进行页面跳转 React 应用中通常使用 react-router-dom 库实现页面跳转。以下是几种常见的跳转方式: 安装依赖 npm install react…

react如何检测

react如何检测

检测 React 应用的方法 使用 PropTypes 进行类型检查 PropTypes 是 React 内置的类型检查工具,用于验证组件的 props 是否符合预期。在开发环境中,PropTypes…