如何在 React 中实现组件的懒加载(Lazy Loading)并配合 Suspense 使用?
如何在 React 中实现组件的懒加载(Lazy Loading)并配合 Suspense 使用?
在 React 中,可以使用 React.lazy() 和 Suspense 来实现组件的懒加载。React.lazy() 允许你动态导入一个组件,而 Suspense 则用于在组件加载完成前显示 fallback 内容(如加载指示器)。
示例代码如下:
import React, { Suspense, lazy } from 'react';
// 使用 React.lazy 动态导入组件
const LazyComponent = lazy(() => import('./LazyComponent'));
function App() {
  return (
    <div>
      <Suspense fallback={<div>Loading...</div>}>
        <LazyComponent />
      </Suspense>
    </div>
  );
}
export default App;
解析:
- React.lazy() 接收一个函数,该函数必须调用动态 import() 并返回一个 Promise,该 Promise 解析为包含默认导出 React 组件的对象。
- Suspense 组件包裹懒加载组件,并通过 fallback 属性指定加载期间显示的内容。
- 这种方式可有效减少初始 bundle 体积,提升首屏加载性能。
- 注意:React.lazy 目前只支持默认导出(default export),若需导入具名导出,可创建中间模块进行默认导出转换。
- 此特性适用于 React 16.6 及以上版本。在服务端渲染(SSR)中需使用 loadable-components 等替代方案。

发表评论 (审核通过后显示评论):