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

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

相关推荐
蜡笔小新星14 分钟前
Flask项目框架
开发语言·前端·经验分享·后端·python·学习·flask
Fantasywt4 小时前
THREEJS 片元着色器实现更自然的呼吸灯效果
前端·javascript·着色器
IT、木易4 小时前
大白话JavaScript实现一个函数,将字符串中的每个单词首字母大写。
开发语言·前端·javascript·ecmascript
Mr.NickJJ5 小时前
JavaScript系列06-深入理解 JavaScript 事件系统:从原生事件到 React 合成事件
开发语言·javascript·react.js
张拭心7 小时前
2024 总结,我的停滞与觉醒
android·前端
念九_ysl7 小时前
深入解析Vue3单文件组件:原理、场景与实战
前端·javascript·vue.js
Jenna的海糖7 小时前
vue3如何配置环境和打包
前端·javascript·vue.js
Mr.NickJJ7 小时前
React Native v0.78 更新
javascript·react native·react.js
星之卡比*7 小时前
前端知识点---库和包的概念
前端·harmonyos·鸿蒙
灵感__idea7 小时前
Vuejs技术内幕:数据响应式之3.x版
前端·vue.js·源码阅读