当前位置:首页 > 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 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)。如需命名导出,需创建中间模块:

// 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

react如何延迟加载

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

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

相关文章

如何生成react代码

如何生成react代码

使用 Create React App 生成项目 安装 Node.js 后,通过命令行工具运行以下命令创建新项目: npx create-react-app my-app cd my-app npm…

如何下载react

如何下载react

下载 React 的方法 通过 npm 或 yarn 安装 React 可以通过包管理器 npm 或 yarn 安装。确保已安装 Node.js(包含 npm),然后在项目目录中运行以下命令:…

react如何查

react如何查

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

react架构如何

react架构如何

React 架构核心概念 React 的架构围绕组件化、虚拟 DOM 和单向数据流设计。组件是构建用户界面的独立模块,分为函数组件和类组件。虚拟 DOM 通过高效的 Diff 算法减少直接操作真实 D…

uniapp实现懒加载

uniapp实现懒加载

uniapp实现懒加载的方法 在uniapp中实现懒加载可以通过多种方式,以下是几种常见的方法: 使用uni.lazyLoad组件 uniapp提供了内置的懒加载组件,适用于图片等资源的懒加载。在页…

如何搭建react项目

如何搭建react项目

使用 Create React App 搭建项目 Create React App (CRA) 是官方推荐的快速搭建 React 项目的工具,无需配置构建工具(如 Webpack 或 Babel)。…