React.lazy 和 suspense 如何使用?

React.lazy 和 suspense 如何使用?

React.lazy 可以让你延迟加载组件,只有在组件需要渲染时才会加载,这样可以提高应用的性能。它的用法是这样的:

javascript 复制代码
import lazy from'react';

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

function MyApp() {
  return (
  <div>
  <LazyComponent />
  </div>
  );
}

export default MyApp;

而 Suspense 则是用于处理异步操作的,比如数据加载。它可以让你的应用在数据加载时显示一个占位符,等数据加载完成后再显示实际的内容。使用 Suspense 需要搭配useEffect和Promise来实现,比如:

javascript 复制代码
import { Suspense } from'react';

function DataComponent() {
  const [data, setData] = useState(null);

  useEffect(() => {
  const fetchData = async () => {
  const response = await fetch('https://example.com/data');
  const data = await response.json();
  setData(data);
  };
  fetchData();
  }, []);

  if (!data) {
  throw new Promise.reject();
  }

  return <div>{data}</div>;
}

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

export default App;

在这个例子中,DataComponent会在数据加载完成后显示数据,如果数据还没加载完成,就会显示一个 "Loading..." 的占位符。

相关推荐
五月君_6 分钟前
炸裂!Claude Opus 4.6 与 GPT-5.3 同日发布:前端人的“自动驾驶“时刻到了?
前端·gpt
Mr Xu_10 分钟前
前端开发中CSS代码的优化与复用:从公共样式提取到CSS变量的最佳实践
前端·css
低代码布道师32 分钟前
Next.js 16 全栈实战(一):从零打造“教培管家”系统——环境与脚手架搭建
开发语言·javascript·ecmascript
鹏北海-RemHusband1 小时前
从零到一:基于 micro-app 的企业级微前端模板完整实现指南
前端·微服务·架构
LYFlied1 小时前
AI大时代下前端跨端解决方案的现状与演进路径
前端·人工智能
光影少年1 小时前
AI 前端 / 高级前端
前端·人工智能·状态模式
一位搞嵌入式的 genius1 小时前
深入 JavaScript 函数式编程:从基础到实战(含面试题解析)
前端·javascript·函数式
anOnion1 小时前
构建无障碍组件之Alert Dialog Pattern
前端·html·交互设计
choke2331 小时前
[特殊字符] Python 文件与路径操作
java·前端·javascript
云飞云共享云桌面1 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能