当前位置:首页 > 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> 标签但不会刷新页面:

react js实现路由跳转

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>;
}

路由参数传递与获取

动态路由参数

react js实现路由跳转

// 路由配置
<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 />;
}

路由配置示例

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

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 中实现点击跳转路由可以通过以下几种方式完成,具体取决于项目使用的路由管理工具(通常是 Vue Router)以及需求场景。 使用 router-link…

vue实现户籍系统路由实现

vue实现户籍系统路由实现

户籍系统路由实现(Vue.js) 户籍系统通常需要管理居民信息、户籍变动、统计查询等功能模块。以下基于Vue Router的实现方案: 路由模块设计 在src/router/index.js中定义核…

react 如何跳转

react 如何跳转

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

jquery跳转

jquery跳转

jQuery 页面跳转方法 使用 jQuery 实现页面跳转有多种方式,以下是几种常见的方法: 使用 window.location.href $(document).ready(functi…

vue路由实现iframe

vue路由实现iframe

Vue 路由实现 iframe 的方法 在 Vue 项目中,可以通过路由配置和组件的方式实现 iframe 的嵌入。以下是具体实现步骤: 创建 iframe 组件 新建一个 Vue 组件用于承载 i…

Vue实现路由监

Vue实现路由监

Vue 实现路由监听的方法 在 Vue 中可以通过多种方式实现路由监听,以下是常见的几种方法: 使用 watch 监听 $route 对象 通过 Vue 的 watch 功能可以监听 $route…