当前位置:首页 > React

react如何实现路由跳转

2026-01-24 07:36:38React

react如何实现路由跳转

React 路由跳转的实现方法

在 React 中实现路由跳转通常使用 react-router-dom 库。以下是几种常见的实现方式:

使用 Link 组件导航

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

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

使用 useNavigate Hook 编程式导航

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

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

  const handleClick = () => {
    navigate('/target-path');
    // 或者带状态跳转
    navigate('/target-path', { state: { data: 'value' } });
  };

  return <button onClick={handleClick}>Go to Target</button>;
}

使用 useHistory (v5 及以下版本)

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

function MyComponent() {
  const history = useHistory();

  const handleClick = () => {
    history.push('/target-path');
    // 或者替换当前路由
    history.replace('/target-path');
  };

  return <button onClick={handleClick}>Go to Target</button>;
}

路由配置基础示例

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

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

动态路由参数传递

<Route path="/user/:id" element={<UserProfile />} />

// 在目标组件中获取参数
import { useParams } from 'react-router-dom';

function UserProfile() {
  const { id } = useParams();
  return <div>User ID: {id}</div>;
}

路由守卫实现

function PrivateRoute({ children }) {
  const isAuthenticated = checkAuth(); // 自定义认证检查
  return isAuthenticated ? children : <Navigate to="/login" />;
}

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

导航时传递状态

navigate('/target', {
  state: { from: location.pathname, data: 'extra-info' }
});

// 在目标组件中获取状态
import { useLocation } from 'react-router-dom';

function TargetComponent() {
  const location = useLocation();
  const { from, data } = location.state || {};
}

以上方法覆盖了 React 路由跳转的主要场景,可以根据项目需求选择合适的实现方式。对于新项目,推荐使用 react-router-dom v6 及以上版本。

react如何实现路由跳转

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

相关文章

vue路由实现内部切换

vue路由实现内部切换

Vue路由实现内部切换的方法 Vue Router是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。以下是几种常见的路由切换方式: 使用<router-link>组件…

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

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

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

h5实现网页跳转

h5实现网页跳转

H5实现网页跳转的方法 在HTML5中,可以通过多种方式实现网页跳转。以下是几种常见的方法: 使用<a>标签 通过超链接标签实现跳转是最传统的方式: <a href="h…

vue实现路由跳转

vue实现路由跳转

路由跳转的基本方法 在Vue中,路由跳转可以通过vue-router实现。vue-router是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。以下是几种常见的路由跳转方式。 声明式导…

vue路由实现登录

vue路由实现登录

路由守卫实现登录验证 在Vue项目中,可以通过路由守卫(Navigation Guards)来实现登录验证逻辑。路由守卫能在路由跳转前、跳转后或跳转时进行拦截处理。 安装路由依赖 npm inst…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…