@levinzhang
2018-12-07T05:36:11.000000Z
字数 887
阅读 584
by
React 16.6引入了Suspense,它能够在等待某些事情的时候(比如通过API调用获取数据)暂停渲染并展现一个加载中的指示器。
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项目为其做出贡献和提供反馈。