当前位置:首页 > React

react实现页面跳转

2026-01-26 22:49:17React

使用 React Router 实现页面跳转

React Router 是 React 生态中最常用的路由管理库,适用于单页面应用(SPA)的导航。以下是几种常见的页面跳转方式:

安装 React Router

npm install react-router-dom

基本路由配置 在项目入口文件(如 App.js)中配置路由:

import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import Home from './Home';
import About from './About';

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

编程式导航

通过 useNavigate Hook 实现跳转:

react实现页面跳转

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

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

  const handleClick = () => {
    navigate('/about'); // 跳转到关于页
    navigate('/about', { replace: true }); // 替换当前历史记录
    navigate(-1); // 返回上一页
  };

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

声明式导航

使用 <Link><NavLink> 组件:

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

function NavBar() {
  return (
    <nav>
      <Link to="/">首页</Link>
      <NavLink to="/about" activeClassName="active">关于</NavLink>
    </nav>
  );
}

NavLink 会自动为当前激活的路由添加样式类。

路由传参

URL 参数传递

react实现页面跳转

// 路由配置
<Route path="/user/:id" element={<User />} />

// 跳转时传递
navigate('/user/123');

// 组件中获取
import { useParams } from 'react-router-dom';
function User() {
  const { id } = useParams();
}

状态参数传递

navigate('/about', { state: { fromHome: true } });

// 目标组件获取
import { useLocation } from 'react-router-dom';
function About() {
  const { state } = useLocation();
}

重定向处理

使用 <Navigate> 组件实现条件重定向:

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

function ProtectedRoute({ user }) {
  return user ? <Dashboard /> : <Navigate to="/login" />;
}

路由守卫

通过高阶组件实现权限控制:

function PrivateRoute({ children }) {
  const auth = useAuth(); // 自定义认证逻辑
  return auth ? children : <Navigate to="/login" />;
}

// 使用方式
<Route path="/dashboard" element={<PrivateRoute><Dashboard /></PrivateRoute>} />

以上方法覆盖了 React 中页面跳转的主要场景,根据具体需求选择合适的方式。React Router v6 的 API 设计更加简洁,建议在新项目中直接使用最新版本。

标签: 跳转页面
分享给朋友:

相关文章

vue实现跳转

vue实现跳转

Vue 实现页面跳转的方法 在 Vue 中实现页面跳转可以通过多种方式,包括使用 Vue Router 进行编程式导航或声明式导航,以及直接使用原生 JavaScript 方法。以下是几种常见的实现方…

h5页面实现扫一扫

h5页面实现扫一扫

调用设备摄像头实现扫描功能 在H5页面中实现扫一扫功能通常需要调用设备的摄像头,并通过JavaScript解析摄像头捕获的图像。以下是几种常见的实现方法: 使用HTML5的getUserMedia…

jquery跳转页面

jquery跳转页面

jQuery 跳转页面方法 使用 jQuery 实现页面跳转可以通过多种方式完成,以下是几种常见的方法: 使用 window.location.href 进行跳转 $(document).read…

h5页面如何实现

h5页面如何实现

实现H5页面的方法 H5页面是基于HTML5技术的网页,通常用于移动端和响应式设计。以下是实现H5页面的关键步骤和技术要点。 基础结构 使用HTML5的DOCTYPE声明作为页面的起始。HTML5简…

vue点击跳转实现

vue点击跳转实现

vue点击跳转实现方法 在Vue中实现点击跳转可以通过多种方式完成,以下是几种常见的方法: 使用router-link组件 Vue Router提供了router-link组件用于声明式导航,适合在…

实现js页面跳转页面跳转页面

实现js页面跳转页面跳转页面

使用 window.location.href 实现跳转 通过修改 window.location.href 属性,可以直接跳转到目标 URL。这种方法会触发页面刷新,并在浏览器历史记录中留下记录。…