当前位置:首页 > 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 Router 在项目中安装 Vue Router 依赖包: npm install vue-router 配置路由 在 src 目录下创建 router/inde…

jquery 跳转

jquery 跳转

jQuery 页面跳转方法 使用 jQuery 实现页面跳转可以通过多种方式完成,以下是几种常见的方法: 修改 window.location 属性 // 直接跳转到指定 URL window.l…

vue实现拼接路径实现跳转

vue实现拼接路径实现跳转

在Vue中拼接路径并实现跳转 使用Vue Router的router.push方法结合模板字符串或路径拼接方法 // 在方法中拼接路径 methods: { navigateTo(path) {…

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

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

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

实现js页面跳转

实现js页面跳转

使用 window.location.href 通过修改 window.location.href 属性实现跳转,这是最常用的方法: window.location.href = "https://…

vue 路由实现原理

vue 路由实现原理

Vue 路由实现原理 Vue Router 是 Vue.js 官方的路由管理器,其核心原理基于前端路由的实现方式。以下是 Vue Router 的主要实现机制: 路由模式 Vue Router 支持…