当前位置:首页 > React

react如何延迟加载

2026-02-26 06:51:36React

延迟加载的实现方法

React中实现延迟加载(Lazy Loading)通常使用React.lazySuspense组件,结合动态导入(Dynamic Imports)技术。这种方法能有效减少初始加载时间,提升应用性能。

使用React.lazy和Suspense

import React, { Suspense } from 'react';

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

function App() {
  return (
    <div>
      <Suspense fallback={<div>Loading...</div>}>
        <LazyComponent />
      </Suspense>
    </div>
  );
}

React.lazy接收一个返回动态导入的函数,Suspense提供加载中的备用UI(如加载动画)。

react如何延迟加载

路由级别的延迟加载 在React Router中结合延迟加载:

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

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

function App() {
  return (
    <Router>
      <Suspense fallback={<div>Loading...</div>}>
        <Routes>
          <Route path="/" element={<Home />} />
          <Route path="/about" element={<About />} />
        </Routes>
      </Suspense>
    </Router>
  );
}

注意事项

命名导出处理 React.lazy默认支持默认导出(default export)。如需命名导出,需创建中间模块:

react如何延迟加载

// MyComponent.js
export const MyComponent = () => <div>Named Export</div>;

// LazyNamedExport.js
export { MyComponent as default } from './MyComponent';

// 使用
const LazyNamed = React.lazy(() => import('./LazyNamedExport'));

错误边界 建议用错误边界(Error Boundary)处理加载失败:

class ErrorBoundary extends React.Component {
  state = { hasError: false };
  static getDerivedStateFromError() { return { hasError: true }; }
  render() { return this.state.hasError ? <h1>Load failed</h1> : this.props.children; }
}

// 使用
<ErrorBoundary>
  <Suspense fallback={<div>Loading...</div>}>
    <LazyComponent />
  </Suspense>
</ErrorBoundary>

替代方案

第三方库

  • @loadable/component:支持服务端渲染和更复杂的场景
    import loadable from '@loadable/component';
    const LazyLoadable = loadable(() => import('./Component'), {
    fallback: <div>Loading...</div>,
    });

图片延迟加载 使用原生loading="lazy"属性或Intersection Observer API

<img src="image.jpg" loading="lazy" alt="Lazy-loaded" />

标签: 加载react
分享给朋友:

相关文章

react 如何引入css

react 如何引入css

在 React 中引入 CSS 的方法 React 提供了多种引入 CSS 的方式,可以根据项目需求选择合适的方法。以下是常见的几种方式: 内联样式 内联样式直接在组件中通过 style 属性定义…

react实现vue

react实现vue

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

react如何部署

react如何部署

部署 React 应用的常见方法 使用静态服务器部署 React 应用在构建后会生成静态文件,可以直接通过静态服务器部署。常用的静态服务器包括 Nginx、Apache 等。 运行构建命令生成静态…

如何创建react

如何创建react

创建React项目的步骤 使用Create React App工具快速搭建React项目。确保已安装Node.js(版本需≥14.0.0)和npm(版本需≥5.6)。 打开终端或命令行工具,运行以…

react如何卸载

react如何卸载

卸载 React 项目或依赖 如果需要完全卸载 React 项目或相关依赖,可以按照以下步骤操作: 删除项目文件夹 直接删除整个项目文件夹是最彻底的方式。确保已备份重要代码或配置文件。 卸载全…

react如何浮动

react如何浮动

使用 CSS 实现浮动 在 React 中实现浮动效果可以通过 CSS 的 float 属性完成。在组件的样式文件或内联样式中直接设置 float: left 或 float: right。…