当前位置: 首页 > news >正文

React中 lazy与 Suspense懒加载的组件

MyHead.jsx

console.log('MyHead.jsx');
function Head() {return <>hello Head</>;
}
export default Head;

懒加载.jsx

// 引入 React 的 useState、lazy 和 Suspense API
// lazy 用于懒加载组件,Suspense 用于在加载过程中显示 loading 状态
import { useState, lazy, Suspense } from 'react';// 使用 lazy + 动态 import 实现组件懒加载
// 只有当组件首次被渲染时才会加载 MyHead 组件
const Head = lazy(() => import('./MyHead'));// App 根组件
function App() {// 控制是否显示懒加载组件的状态const [show, setShow] = useState(false);return (<>{/* 页面初始内容 */}hello App{/* 点击按钮后触发 setShow(true),使组件开始加载 */}<button onClick={() => setShow(true)}>点击</button>{/* 当 show 为 true 时才渲染 Head 组件 */}{show && (// 必须用 <Suspense> 包裹 lazy 加载的组件// fallback 表示加载过程中显示的内容<Suspense fallback={<div>loading...</div>}><Head /> {/* 实际要懒加载的组件 */}</Suspense>)}</>);
}// 导出 App 组件供其他模块使用
export default App;

🔍 注释说明总结

部分说明
lazy(() => import('...'))实现组件按需加载,只有在使用时才请求该模块
Suspense fallback={...}在组件加载完成前展示一个 loading 状态
useState(false)控制懒加载组件的显示时机
onClick={() => setShow(true)}点击按钮后触发组件加载

相关文章:

  • git合并多次commit提交
  • CentOS:搭建国内软件repository,以实现自动yum网络安装
  • JUC高并发编程
  • 自动化软件如何确保高可用性和容错性?
  • 云蝠智能大模型呼叫动态情感共情能力上线!
  • 大语言模型 17 - MCP Model Context Protocol 介绍对比分析 基本环境配置
  • 双活数据中心解决方案
  • 如何在Java中处理PDF文档(教程)
  • :-1: error: msvc-version.conf loaded but QMAKE_MSC_VER isn‘t set错误原因及解决方法
  • WSD3043 MOSFET 在吸黑头仪中的应用
  • #Redis缓存篇#(七)分布式缓存
  • 基于大模型的全面惊厥性癫痫持续状态技术方案
  • 1.4 C++之运算符与表达式
  • 分类算法 Kmeans、KNN、Meanshift 实战
  • 从 0 到 1:用 Trae 插件 Builder 模式开发端午包粽子小游戏
  • 权限控制相关实现
  • 基于Flink的数据中台管理平台
  • 制作一款打飞机游戏53:子弹样式
  • 破解充电安全难题:智能终端的多重防护体系构建
  • Token类型与用途详解:数字身份的安全载体图谱
  • 微博一季度净利增12%,网络游戏和手机行业收入贡献同比减少
  • 美“金穹”反导系统增加外空作战手段,外交部:中方严重关切
  • 从马相伯到谢希德:复旦大学校长传记系列再版首发
  • 迪拜工业城2025年初表现强劲,有望迎来投资增长新高
  • 夜读丨永不掉电的陪伴
  • 上海合作组织减贫和可持续发展论坛开幕,沈跃跃宣读习近平主席贺信