【懒加载】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等库提供的帮助函数,用于实现组件的懒加载。它接受一个返回动态导入语句的函数作为参数。

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

相关推荐
拾光拾趣录11 分钟前
for..in 和 Object.keys 的区别:从“遍历对象属性的坑”说起
前端·javascript
OpenTiny社区22 分钟前
把 SearchBox 塞进项目,搜索转化率怒涨 400%?
前端·vue.js·github
编程猪猪侠1 小时前
Tailwind CSS 自定义工具类与主题配置指南
前端·css
qhd吴飞1 小时前
mybatis 差异更新法
java·前端·mybatis
YGY Webgis糕手之路1 小时前
OpenLayers 快速入门(九)Extent 介绍
前端·经验分享·笔记·vue·web
患得患失9491 小时前
【前端】【vueDevTools】使用 vueDevTools 插件并修改默认打开编辑器
前端·编辑器
ReturnTrue8681 小时前
Vue路由状态持久化方案,优雅实现记住表单历史搜索记录!
前端·vue.js
UncleKyrie1 小时前
一个浏览器插件帮你查看Figma设计稿代码图片和转码
前端
遂心_1 小时前
深入解析前后端分离中的 /api 设计:从路由到代理的完整指南
前端·javascript·api
你听得到112 小时前
Flutter - 手搓一个日历组件,集成单日选择、日期范围选择、国际化、农历和节气显示
前端·flutter·架构