当前位置:首页 > 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 实现动态跳转:

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 参数传递

获取参数

// 获取 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如何路由跳转

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

相关文章

Vue实现路由监

Vue实现路由监

Vue实现路由监听的方法 在Vue中,可以通过多种方式监听路由变化,以下是常见的实现方法: 使用Vue Router的全局前置守卫 router.beforeEach((to, from, n…

vue 实现页面跳转

vue 实现页面跳转

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

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

vue路由实现思路

vue路由实现思路

Vue 路由实现思路 Vue 路由的核心是通过 Vue Router 库实现单页应用(SPA)的页面切换,避免整页刷新。以下是关键实现思路: 安装与引入 Vue Router 通过 npm 或 y…

react如何使用路由

react如何使用路由

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

vue 实现动态路由

vue 实现动态路由

动态路由的实现方法 Vue中实现动态路由通常涉及以下关键步骤,结合Vue Router的API和异步加载逻辑完成。 基础配置 安装Vue Router并初始化路由实例。在router/index.j…