React Suspense试图解决什么问题?

问题描述 投票:0回答:1

我在reactjs.org中看过一些例子,但我想知道他们试图解决的问题和/或它背后的魔力是什么。除了反应文档中的内容之外,我如何在实际项目中使用它。

javascript reactjs lazy-loading code-splitting react-suspense
1个回答
0
投票

我知道有两个React Suspense用例(并且非常肯定会被发现)。请注意,在下面的答案中,我使用suspense作为实用参考,实际上有更多的组件使用,如lazyreact-cache等。

#1更容易获得更低的交互时间

较低的time to interactive a.k.a TTI指标是衡量网站对用户感受速度的一种方式。如果您在浏览器开发工具中检查网络资源,您将看到等待下载javascript文件的时间非常长。即使它被缩小和压缩,也可能不是最佳的。

对于e.x.如果您的网站在某个时候需要数据可视化库(比​​如Highcharts),如果它不是您的用户会看到的第一件事,则您不需要使用第一个javascript文件发送该可视化组件。这将从您的初始捆绑包中节省大量内容并改善您的TTI指标。

这是通过webpack动态导入的组合魔法完成的,对Lazy和React Suspense做出反应(这就是文档所指的)

#2处理有关数据获取的常见情况

我认为这仍然是一项正在进行中的工作,但我记得是团队正在努力的事情。如果您的组件需要从服务器(API调用)获取其数据,那么您将看到一些常见问题,并且您将尝试以某种身份处理它们:

  1. 如果请求需要很长时间,请显示加载指示
  2. 如果您的请求出错,该怎么办(错误边界现在为您执行此操作)
  3. 如果您想缓存昂贵的网络请求,该怎么办?

这些是共同关注的问题,也就是悬念将会有所帮助。

可能感兴趣的其他资源

  1. Dan Abramovs talk at jsConf向世界介绍了悬念。
  2. 关于medium的一篇很好的文章,展示了代码分裂的好处和对TTI的影响
© www.soinside.com 2019 - 2024. All rights reserved.