当前位置:首页 > React

react如何路由跳转

2026-01-23 17:24:52React

使用 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 实现动态跳转:

react如何路由跳转

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

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

  const handleLogin = () => {
    navigate('/dashboard'); // 跳转到指定路径
    // navigate(-1); // 返回上一页
  };

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

路由参数传递

跳转时传递参数

navigate('/user', { state: { id: 123 } }); // 通过 state 传递
navigate('/user/123'); // 通过 URL 参数传递

获取参数

react如何路由跳转

// 获取 state 参数
const location = useLocation();
const { id } = location.state;

// 获取 URL 参数(需配置动态路由)
const { id } = useParams(); // 假设路由为 /user/:id

动态路由配置

在路由配置中定义参数:

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

重定向(使用 <Navigate> 组件)

通过条件渲染 <Navigate> 实现重定向:

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

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

路由守卫(权限控制)

结合自定义逻辑实现权限控制:

function ProtectedRoute({ children }) {
  const auth = useAuth();
  const location = useLocation();

  if (!auth.user) {
    return <Navigate to="/login" state={{ from: location }} />;
  }

  return children;
}

注意事项

  • React Router v6 使用 useNavigate 替代了旧版的 useHistory
  • 跳转时传递的 state 参数不会显示在 URL 中,适合敏感数据。
  • 动态路由参数需通过 useParams 获取,而查询参数(如 ?key=value)需手动解析。

以上方法覆盖了 React Router 的主要跳转场景,可根据实际需求选择合适的方式。

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

相关文章

react如何使用路由

react如何使用路由

使用 React Router 的基本方法 React Router 是 React 应用中实现路由功能的核心库。以下是基本使用方法: 安装 React Router 依赖包: npm insta…

react路由如何使用

react路由如何使用

React 路由的基本使用 React 路由通常通过 react-router-dom 库实现,用于管理单页面应用(SPA)中的页面导航。 安装 react-router-dom: npm ins…

Vue中实现路由

Vue中实现路由

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

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

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

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

js怎么实现网页跳转

js怎么实现网页跳转

使用 window.location.href 修改 window.location.href 可以直接跳转到新的 URL。这是最常见的方法之一,适用于大多数场景。 window.location.…

uniapp 路由插件

uniapp 路由插件

在UniApp中,路由管理通常依赖框架内置的页面跳转API,但若需要更高级的路由功能(如动态路由、拦截器等),可通过以下插件或方案实现: 路由插件推荐 uni-simple-router 专为Uni…