当前位置:首页 > React

react 如何写页面跳转

2026-01-25 01:18:45React

页面跳转的实现方式

在React中实现页面跳转可以通过多种方式,以下是常见的几种方法:

使用React Router的<Link>组件

React Router是React生态中最常用的路由库,通过<Link>组件可以实现声明式导航。

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

function App() {
  return (
    <div>
      <Link to="/about">关于我们</Link>
    </div>
  );
}

使用useNavigate钩子

React Router v6引入了useNavigate钩子,适用于编程式导航场景。

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

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

  const handleClick = () => {
    navigate('/about');
  };

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

使用window.location

原生JavaScript方式,会触发页面完全刷新。

function RedirectButton() {
  const redirect = () => {
    window.location.href = '/about';
  };

  return <button onClick={redirect}>原生跳转</button>;
}

使用<Redirect>组件

在React Router v5及以下版本可以使用重定向组件。

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

function ProtectedPage({ isLoggedIn }) {
  if (!isLoggedIn) {
    return <Redirect to="/login" />;
  }
  return <div>受保护内容</div>;
}

动态路由跳转

传递参数时可以使用以下方式:

// 使用useNavigate传递state
navigate('/user', { state: { id: 123 } });

// 或通过URL参数
navigate('/user/123');

路由配置基础示例

典型的路由配置示例:

import { BrowserRouter, Routes, Route } from 'react-router-dom';

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
      </Routes>
    </BrowserRouter>
  );
}

注意事项

  • React Router v6与v5有重大API变更,需注意版本兼容性
  • 编程式导航通常在事件处理或异步操作后使用
  • 声明式导航更适合静态链接场景
  • 使用原生跳转会丢失React应用状态

根据具体场景选择合适的方式,React Router的方案能保持单页应用的特性,避免页面完全刷新。

react 如何写页面跳转

标签: 跳转如何写
分享给朋友:

相关文章

vue实现拼接路径实现跳转

vue实现拼接路径实现跳转

实现拼接路径跳转的方法 在Vue中,可以通过多种方式拼接路径并实现跳转。以下是几种常见的实现方法: 使用router-link组件 通过模板中的router-link组件动态拼接路径: <r…

php实现页面跳转

php实现页面跳转

PHP实现页面跳转的方法 在PHP中,可以通过多种方式实现页面跳转,以下是几种常用的方法: header函数跳转 header("Location: target_page.php"); exit…

vue文件实现页面跳转

vue文件实现页面跳转

使用 router-link 实现跳转 在 Vue 模板中直接使用 <router-link> 组件,通过 to 属性指定目标路径: <router-link to="/ta…

java如何写一个接口

java如何写一个接口

在Java中定义接口 接口在Java中是一种抽象类型,用于定义一组方法规范,供类实现。接口通过interface关键字声明,可以包含抽象方法、默认方法、静态方法和常量。 public interfa…

h5实现登录页面跳转页面跳转页面

h5实现登录页面跳转页面跳转页面

实现H5登录页面跳转 在H5中实现登录页面跳转可以通过多种方式完成,以下是几种常见方法: 使用window.location.href window.location.href = '目标页面…

h5实现登录页面跳转页面跳转页面跳转页面

h5实现登录页面跳转页面跳转页面跳转页面

实现登录页面跳转的方法 在H5中实现登录页面跳转可以通过多种方式完成,以下是一些常见的方法: 使用JavaScript的window.location方法 通过JavaScript的window.l…