当前位置:首页 > React

react中实现懒加载

2026-01-27 18:46:21React

使用 React.lazy 和 Suspense

React 16.6 引入了 React.lazySuspense 来实现组件懒加载。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 Router 中,可以结合 React.lazy 实现路由级别的懒加载,优化页面加载性能。

import React, { Suspense } from 'react';
import { BrowserRouter as Router, Route, Switch } 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>}>
        <Switch>
          <Route exact path="/" component={Home} />
          <Route path="/about" component={About} />
        </Switch>
      </Suspense>
    </Router>
  );
}

使用第三方库 react-loadable

react-loadable 是一个流行的库,提供了更灵活的懒加载方案,支持预加载和更复杂的加载状态处理。

react中实现懒加载

import Loadable from 'react-loadable';

const LoadableComponent = Loadable({
  loader: () => import('./LazyComponent'),
  loading: () => <div>Loading...</div>,
});

function App() {
  return <LoadableComponent />;
}

图片懒加载

对于图片资源,可以使用 Intersection Observer API 或第三方库如 react-lazyload 实现懒加载。

import LazyLoad from 'react-lazyload';

function App() {
  return (
    <div>
      <LazyLoad height={200} offset={100}>
        <img src="path/to/image.jpg" alt="Lazy loaded" />
      </LazyLoad>
    </div>
  );
}

动态导入与代码分割

通过动态导入语法 import() 结合 Webpack 的代码分割功能,可以进一步优化懒加载性能。

react中实现懒加载

import('./math').then(math => {
  console.log(math.add(16, 26));
});

注意事项

懒加载可能导致组件加载时的短暂延迟,合理设置 fallback 内容提升用户体验。

确保生产环境构建工具(如 Webpack)支持代码分割,避免打包体积过大。

对于关键路径组件,避免过度使用懒加载,以免影响首屏渲染速度。

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

相关文章

react如何保养

react如何保养

保持组件简洁 将大型组件拆分为更小、更专注的组件,每个组件只负责单一功能。避免在单个组件中处理过多逻辑或状态,这有助于提高可维护性和可测试性。 合理使用状态管理 根据应用复杂度选择状态管理方案。简单…

vue实现懒加载的方法

vue实现懒加载的方法

Vue 实现懒加载的方法 路由懒加载 通过动态导入语法拆分路由组件,减少初始加载时间。适用于 Vue Router 配置: const routes = [ { path: '/home…

如何评价react native

如何评价react native

React Native 的优势 跨平台开发效率高:基于 JavaScript 和 React 语法,可同时开发 iOS 和 Android 应用,减少重复代码量。性能接近原生:通过原生组件渲染,性能…

react中monent如何获取日期

react中monent如何获取日期

使用 Moment.js 获取当前日期 在 React 中通过 Moment.js 获取当前日期,可以直接调用 moment() 函数。它会返回包含当前日期和时间的 Moment 对象。 impor…

react moment如何使用

react moment如何使用

安装 react-moment 通过 npm 或 yarn 安装 react-moment: npm install react-moment 或 yarn add react-moment…

如何手写一个react

如何手写一个react

手写一个简单的 React 创建一个基础的 React 实现需要理解其核心概念:虚拟 DOM、组件、状态管理和渲染。以下是一个简化版的 React 实现。 创建虚拟 DOM 虚拟 DOM 是真实…