当前位置:首页 > React

react js实现路由跳转

2026-01-27 11:31:36React

使用 React Router 实现路由跳转

React Router 是 React 生态中最常用的路由管理库,支持声明式路由和编程式导航。以下是几种常见的路由跳转方法:

安装 React Router

npm install react-router-dom

声明式导航(Link 组件)

使用 <Link> 组件实现点击跳转,类似 HTML 的 <a> 标签但不会刷新页面:

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

function NavBar() {
  return (
    <nav>
      <Link to="/home">Home</Link>
      <Link to="/about">About</Link>
    </nav>
  );
}

编程式导航(useNavigate Hook)

在函数组件中通过 useNavigate Hook 实现动态跳转:

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

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

  const handleLogin = () => {
    // 跳转到指定路径
    navigate('/dashboard');

    // 带参数跳转
    navigate('/profile', { state: { userId: 123 } });

    // 替换历史记录(无回退)
    navigate('/settings', { replace: true });
  };

  return <button onClick={handleLogin}>Login</button>;
}

路由参数传递与获取

动态路由参数

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

// 组件内获取参数
import { useParams } from 'react-router-dom';
function UserProfile() {
  const { id } = useParams();
  return <div>User ID: {id}</div>;
}

查询参数(URLSearchParams)

// 跳转时传递
navigate('/search?query=react');

// 组件内获取
const [searchParams] = useSearchParams();
const query = searchParams.get('query');

重定向(Navigate 组件)

条件渲染时实现自动跳转:

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

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

路由配置示例

完整路由配置通常放在应用入口文件:

react js实现路由跳转

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

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
        <Route path="/contact" element={<Contact />} />
        <Route path="*" element={<NotFound />} /> // 404 页面
      </Routes>
    </BrowserRouter>
  );
}

注意事项

  • React Router v6 使用 Routes 替代旧版的 Switch
  • 嵌套路由通过 <Outlet> 组件实现布局复用
  • 类组件应使用 withRouter 高阶组件(v5)或迁移到函数组件

以上方法覆盖了 React Router 最常见的路由跳转场景,可根据具体需求选择合适的方式。

标签: 跳转路由
分享给朋友:

相关文章

vue 路由实现

vue 路由实现

Vue 路由实现方法 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是实现 Vue 路由的基本步骤: 安装 Vue Router 使用 npm 或 ya…

vue文件实现页面跳转

vue文件实现页面跳转

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

vue实现前端跳转

vue实现前端跳转

Vue 实现前端跳转的方法 在 Vue 中实现前端跳转主要通过路由(Vue Router)完成,以下是几种常见的方式: 声明式导航 使用 <router-link> 组件实现跳转,适合模…

Vue中实现路由

Vue中实现路由

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

vue路由实现模式

vue路由实现模式

Vue路由实现模式 Vue Router 提供了两种路由实现模式:Hash 模式和 History 模式。两种模式的主要区别在于 URL 的表现形式以及后端支持的需求。 Hash 模式 Hash 模…

vue点击实现跳转

vue点击实现跳转

vue点击实现跳转的方法 在Vue中实现点击跳转可以通过多种方式完成,具体取决于项目需求和技术栈。以下是几种常见的实现方法: 使用router-link Vue Router提供了router-li…