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

相关推荐
q***76662 分钟前
SpringSecurity 实现token 认证
android·前端·后端
llxxyy卢3 分钟前
xss-maps(1-12)尝试思路过关加源码分析
前端·xss
Amy_yang5 分钟前
js 封装时间格式化,将单位有秒(s)的数据转换为'00:00:00'格式
javascript
interception6 分钟前
爬虫js逆向,jsdom补环境,抖音,a_bogus
javascript·爬虫·python
小璞7 分钟前
一、React Fiber 架构与任务调度详解
前端·react.js·前端框架
小璞7 分钟前
四、虚拟 DOM 与 Diff 算法:架构设计的智慧
前端·react.js·前端框架
南蓝8 分钟前
【AI 日记】调用大模型的时候如何按照 sse 格式输出
前端·人工智能
一树论10 分钟前
浏览器插件开发经验分享二:如何处理日期控件
前端·javascript
小璞10 分钟前
六、React 并发模式:让应用"感觉"更快的架构智慧
前端·react.js·架构
Yanni4Night12 分钟前
LogTape:零依赖的现代JavaScript日志解决方案
前端·javascript