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..." 的占位符。

相关推荐
祀爱7 分钟前
ControllerBase 类将对象转换为 JSON 格式并返回前端的方法
前端·json·asp.net
huangdong_10 分钟前
有什么软件可以下载淘宝和天猫店铺的商品图片?——从工具推荐到技术原理的完整解答
java·前端·数据库
2401_8784545310 分钟前
前端性能优化复习
前端·性能优化
Tiffany_Ho11 分钟前
Derek-Callan-business-english: 用现代前端技术打造高效商务英语学习平台
前端·typescript·node.js
weixin_BYSJ198713 分钟前
springboot鹿邑县旅游网站99312(源码+文档)
java·javascript·spring boot·python·django·flask·php
晓得迷路了19 分钟前
栗子前端技术周刊第 131 期 - pnpm 11.3、npm 11.16.0、Astro 6.4...
前端·javascript·css
kyriewen9 小时前
微软用Go重写TypeScript编译器,速度提升10倍,网友:这是“背叛”还是“救赎”?
前端·typescript·ecmascript 6
Ceelog9 小时前
久坐党自救指南:屏幕前 8 小时,身体到底在经历什么
前端·后端
西陵9 小时前
Agent 为什么会陷入 Doom Loop?OpenClaw 的破解之道
前端·人工智能·ai编程