当前位置:首页 > React

react路由实现app切换

2026-01-27 17:22:53React

路由基础配置

在React中实现应用页面切换通常使用react-router-dom库。安装依赖包后,在入口文件(如index.js)中包裹BrowserRouter组件:

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

ReactDOM.render(
  <BrowserRouter>
    <App />
  </BrowserRouter>,
  document.getElementById('root')
);

定义路由规则

在组件内部通过RoutesRoute定义路径与组件的映射关系。例如在App.js中:

import { Routes, Route } from 'react-router-dom';
import Home from './Home';
import About from './About';

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

导航跳转实现

使用Link组件或useNavigate钩子进行页面跳转。两种方式的示例如下:

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

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

  return (
    <div>
      <Link to="/about">关于页面</Link>
      <button onClick={() => navigate('/')}>返回首页</button>
    </div>
  );
}

动态路由处理

通过冒号语法定义动态参数,在组件内使用useParams获取:

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

// UserProfile组件内
import { useParams } from 'react-router-dom';
function UserProfile() {
  const { id } = useParams();
  return <div>用户ID: {id}</div>;
}

嵌套路由配置

通过Outlet组件实现嵌套路由的视图渲染:

// 父路由配置
<Route path="/dashboard" element={<Dashboard />}>
  <Route path="stats" element={<Stats />} />
  <Route path="settings" element={<Settings />} />
</Route>

// Dashboard组件内需要包含Outlet
import { Outlet } from 'react-router-dom';
function Dashboard() {
  return (
    <div>
      <h1>控制台</h1>
      <Outlet />
    </div>
  );
}

路由守卫实现

通过高阶组件或自定义包装组件实现权限控制:

function PrivateRoute({ element: Element, ...rest }) {
  const isAuthenticated = checkAuth();

  return isAuthenticated ? (
    <Element {...rest} />
  ) : (
    <Navigate to="/login" replace />
  );
}

// 使用方式
<Route path="/admin" element={<PrivateRoute element={AdminPanel} />} />

路由懒加载优化

使用React.lazySuspense实现组件按需加载:

const About = React.lazy(() => import('./About'));

function App() {
  return (
    <Suspense fallback={<div>加载中...</div>}>
      <Routes>
        <Route path="/about" element={<About />} />
      </Routes>
    </Suspense>
  );
}

react路由实现app切换

标签: 路由react
分享给朋友:

相关文章

如何删除react

如何删除react

卸载 React 项目依赖 打开项目根目录下的 package.json 文件,删除所有包含 react、react-dom 或其他 React 相关库的依赖项。保存文件后运行以下命令: npm u…

react实现vue

react实现vue

React 实现 Vue 功能 React 和 Vue 是两种不同的前端框架,但可以通过一些方法在 React 中实现 Vue 的特性。以下是几种常见 Vue 功能在 React 中的实现方式: 双…

js实现vue路由

js实现vue路由

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

如何降低react版本

如何降低react版本

降低 React 项目版本的步骤 检查当前 React 版本 运行以下命令查看项目中安装的 React 当前版本: npm list react 或 yarn list react 修…

react如何查

react如何查

React 查询方法 React 提供了多种查询 DOM 元素的方式,以下是几种常见的方法: 使用 ref 通过 useRef 钩子可以获取 DOM 节点的引用,适用于直接操作 DOM 的场景。…

react如何收录

react如何收录

React 收录方法 React 的收录主要涉及搜索引擎优化(SEO)和预渲染技术。由于 React 是单页应用(SPA),默认情况下内容由 JavaScript 动态生成,可能导致搜索引擎爬虫难以收…