React Suspense 提供 Redux 的替代方案

阅读数:927 2018 年 12 月 10 日

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 库的集成。

Suspense 服务端渲染的支持计划在 2019 年实现。

React 是遵循 MIT 许可证的开源软件。React 鼓励开发者在遵循 React 贡献指南 Facebook 开源准则的前提下,通过 React GitHub 项目为其做出贡献和提供反馈。

查看英文原文: React Suspense Provides Redux Alternative

收藏

评论

微博

发表评论

注册/登录 InfoQ 发表评论