【懒加载】Suspense和lazy实现react组件的懒加载

js 复制代码
import React, { lazy, Suspense } from 'react';

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

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

export default App;

在上面的示例中,当 LazyComponent 组件被懒加载时,如果加载过程比较耗时,<div>Loading...</div> 就会作为备用UI显示在界面上。一旦 LazyComponent 加载完成,它将替换备用UI并正常渲染。

你可以根据需要自定义备用UI的内容。它可以是一个加载动画、一段文字或任何你认为合适的元素。在加载完成之前,备用UI将在懒加载组件的位置显示给用户以提示。 如果没有明确指定fallback属性,界面将保持空白,没有显示任何备用UI。一旦 LazyComponent 加载完成,它将替换空白并正常渲染。

  • import() 函数用于动态导入模块。在这种情况下,它正在导入位于 '@/home' 的模块。
  • lazy() 函数是由React或React Router等库提供的帮助函数,用于实现组件的懒加载。它接受一个返回动态导入语句的函数作为参数。

懒加载的目的是在需要时(通常是满足某个条件时)动态加载组件或模块。通过延迟加载不太关键或很少使用的组件,可以提高应用程序的初始加载时间。

相关推荐
掘金安东尼6 分钟前
⏰前端周刊第 458 期v2026.3.24
前端·javascript·面试
前端付豪19 分钟前
实现必要的流式输出(Streaming)
前端·后端·agent
张元清21 分钟前
useMediaQuery:React 响应式设计完全指南
前端·javascript·面试
小金鱼Y22 分钟前
一文吃透 JavaScript 防抖:从原理到实战,让你的页面不再 “手抖”
前端·javascript·面试
Z兽兽25 分钟前
React 18 开发环境下useEffect 会执行两次,原因分析及解决方案
前端·react.js·前端框架
紫_龙27 分钟前
最新版vue3+TypeScript开发入门到实战教程之Vue3详解props
前端·vue.js·typescript
孟陬32 分钟前
为什么国外技术大神都爱自己搭博客,而国内程序员却挤在微信公众号或掘金?
java·typescript·前端框架
树上有只程序猿34 分钟前
这波低代码热,能维持多久
前端
姓王名礼39 分钟前
这是一个完整的全栈交付包,包含Vue3 前端交互界面(集成数字人视频流、ECharts 图表、语音对话)和Docker Compose 一键部署脚本。
前端·docker·echarts
嵌入式-老费43 分钟前
vivado hls的应用(axis接口)
前端·webpack·node.js