写点什么

Recoil:面向 React 的新的状态管理库

  • 2020-06-02
  • 本文字数:853 字

    阅读完需:约 3 分钟

Recoil:面向React的新的状态管理库

Recoil是 Facebook 推出的一个全新的、实验性的 JavaScript 状态管理库,它解决了使用现有 Context API 在构建较大应用时所面临的很多问题。


因为 React 主要是一个 UI 库,开发人员通常会在使用 React 的同时使用一个状态管理方案以简化数据的处理。


很多现有的状态管理方案都是基于 React 在 2014 年引入的 Flux 架构的。然而,尽管像 Redux 和 MobX 这样的库能够确保应用的状态保持一致,但是对于很多应用来讲,它们所带来的开销是难以估量的。


为了解决这个问题,React 引入了一个简单的替代方案Context API,它允许开发人员通过组件树共享数据,而不必在每个级别手动传递属性。


Recoil 为开发人员提供了另外一个解决方案,这些开发人员可能想要避免使用那些已经成熟的状态管理系统,但是又觉得 Context API 太具局限性。


如官方文档所述,Recoil 通过解决 Context API 的三个问题实现了这一点。


  1. 组件状态只能通过往上推送至公共祖先来进行共享,这可能包含一个巨大的树,随后这个树需要重新渲染。

  2. Context 只能存储一个值,而不能存储一组不确定的值,让每个值都有自己的消费者。

  3. 以上两点使得将树的顶部(状态必须要存在的地方)与树的叶子(状态被使用的地方)进行代码分离变得非常困难。


Recoil 使用 Atom 和 Selector 来管理应用的数据。每个 Atom 包含一个唯一的键和一段它将要管理的数据,而每个 Selector 代表一个衍生状态,该衍生状态可以是基于多个 Atom 的。


关于如何组合这两者,有一个非常棒的样例,那就是流行的 todo 应用,它包含了两个 Atom 和一个 Selector。


为了管理应用的数据,我们创建了两个 Atom。第一个包括原始的列表项,而第二个包含了过滤器(“已完成”、“未完成”和“全部”等)。


为了展现这个 todo 列表,我们使用 Selector 基于选中的过滤器来过滤 todo 项。


关于完整的 todo 教程和良好的入门指南,请访问官方文档


Recoil 基于 MIT 许可证发布,可以通过GitHub获取。


请注意,Recoil 只是一个实验性的解决方案,还不能在生产环境的应用中使用。


原文链接:Recoil - a New State Management Library for React


2020-06-02 09:253506

评论

发布
暂无评论
发现更多内容

免费试听 | 深圳测试开发高薪线下周末班即将开班,从自动化到测试平台开发,职场进阶快人一步

测吧(北京)科技有限公司

测试

最大噪音值甚至受法规限制,如何基于LBM算法有效控制风扇气动噪音

Altair RapidMiner

仿真 噪音数据 altair

JNPF:开启智能制造新工具时代

不在线第一只蜗牛

低代码 制造业

在角色不一的全功能团队,如何做绩效排名?

思码逸研发效能

DevOps 研发效能 绩效管理 效能度量 研发效能管理

百度AI继续霸榜!百度搜索蝉联国内AI产品第一

极客天地

Vue状态管理库Pinia详解

威哥爱编程

JavaScript Vue Pinia

SD-WAN:大型集团机构组网方案

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

inBuilder低代码平台新特性推荐-第二十五期

inBuilder低代码平台

低代码 组件

刘洋,一个爱 drink 的好运程序员|MarsCoders 开发者说

TRAE.ai

人工智能 程序员 AI 智能

张博,在压力下保持松弛的研一字节“老员工”|MarsCoders 开发者说

TRAE.ai

程序员 AI 开发工具 智能

人工智能在招聘领域的革新:2024年值得关注的招聘API

幂简集成

招聘 API AI招聘

30个sql调优及高级sql技巧

威哥爱编程

MySQL oracle #SQL

10款好用的开源 HarmonyOS 工具库

威哥爱编程

鸿蒙 HarmonyOS HarmonyOS NEXT

尝鲜 HarmonyOS NEXT 开发环境搭建

威哥爱编程

鸿蒙 HarmonyOS HarmonyOS NEXT

SD-WAN解决视频会议加速难题

Ogcloud

网络加速 SD-WAN SD-WAN组网 SDWAN 视频会议加速

深圳测试开发高薪线下周末班即将开班,从自动化到测试平台开发

霍格沃兹测试开发学社

澜舟智会再升级|企业用户与专业人士的智能会议助手

澜舟孟子开源社区

人工智能 智能助手 大模型 提高效率

在 ArkTS 中,如何有效地进行内存管理和避免内存泄漏?

威哥爱编程

鸿蒙 HarmonyOS HarmonyOS NEXT

iPaaS全面选型指南

谷云科技RestCloud

系统架构 产品开发 ipaas

HarmonyOS NEXT 开发之ArkTS基础入门

威哥爱编程

HarmonyOS ArkTS HarmonyOS NEXT

Go语言对接微信支付与退款全流程指南

不在线第一只蜗牛

golang 微信 开发语言

现场直击!2023望繁信科技产品发布会精彩回顾

望繁信科技

数字化转型 流程挖掘 流程资产 流程智能 数字北极星

快速上手:淘宝/天猫商品快递费用API返回值解析

技术冰糖葫芦

API 接口 API 文档 API 测试 API 性能测试

ArkTS 和仓颉的特性对比与案例

威哥爱编程

HarmonyOS ArkTS 仓颉 HarmonyOS NEXT

HarmonyOS NEXT 底部选项卡功能

威哥爱编程

HarmonyOS ArkTS HarmonyOS NEXT

做效能度量,如何避免落入“此消彼长”的怪圈?

思码逸研发效能

程序员 DevOps 研发效能 效能度量 业技融合

Recoil:面向React的新的状态管理库_大前端_Guy Nesher_InfoQ精选文章