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

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

相关推荐
&白帝&26 分钟前
uniapp中使用picker-view选择时间
前端·uni-app
谢尔登33 分钟前
Babel
前端·react.js·node.js
ling1s33 分钟前
C#基础(13)结构体
前端·c#
卸任40 分钟前
使用高阶组件封装路由拦截逻辑
前端·react.js
lxcw1 小时前
npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED
前端·npm·node.js
秋沐1 小时前
vue中的slot插槽,彻底搞懂及使用
前端·javascript·vue.js
这个需求建议不做1 小时前
vue3打包配置 vite、router、nginx配置
前端·nginx·vue
QGC二次开发1 小时前
Vue3 : Pinia的性质与作用
前端·javascript·vue.js·typescript·前端框架·vue
云草桑1 小时前
逆向工程 反编译 C# net core
前端·c#·反编译·逆向工程
布丁椰奶冻1 小时前
解决使用nvm管理node版本时提示npm下载失败的问题
前端·npm·node.js