React 16.6引入了Suspense,它能够在某些时候(比如通过 API 调用获取数据)暂停渲染并展现一个加载中的指示器。
在常见的简单场景中,React Suspense消除了使用Redux的必要性,React 专家 Ryan Florence 这样说到:
如果你使用 Redux 的主要场景是将其作为服务端数据的客户端缓存,那么 Suspense 可以取代对 Redux 的使用。我之所以考虑这样做是因为这样能够让代码更简洁,同时能够有效管理 spinner。
对于更复杂的状态管理,比如同步状态到 API 和 localStorage,Redux这种方式所提供的价值超过了 Suspense。
Bartosz Szczeciński 是来自波兰 GFT 的软件工程师,他认为Suspense将会对React的使用产生重要的影响:
我们可能会看到许多库会率先采用这种解决方案,并且必须调整我们的最佳实践(在 Render 中调用 AJAX 请求突然间变得可行了),但我相信通过这种方式我们能够为用户创建更好的应用程序和体验!
React 16.6 发布版本只包含了 Suspense 的一个使用场景,即通过React.lazy()
和<React.Suspense>
实现懒加载组件。React 优化代码切分的方式以及 Suspense 的用法都包含在React代码切分指南文档中。
除了代码切分之外,React 团队还计划为 Suspense 添加额外的功能,包括处理数据抓取以及与 GraphQL 库的集成。
React是遵循MIT许可证的开源软件。React鼓励开发者在遵循React贡献指南和Facebook开源准则的前提下,通过React GitHub项目为其做出贡献和提供反馈。
查看英文原文:React Suspense Provides Redux Alternative
评论 1 条评论