写点什么

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:253427

评论

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

UI设计培训主要学习内容是哪些

小谷哥

阿里云弹性计算SRE实践:亿级调用量下的预警治理

TakinTalks稳定性社区

预警 告警体系 监控治理 SRE实践

禅道的Bug管理流程介绍

禅道项目管理

测试 禅道 bug管理

公排跳排互助模式智能合约dapp系统开发(matic马蹄链)

开发微hkkf5566

北京UI设计学校怎么选?

小谷哥

2022年,移动应用行业有哪些值得关注的技术趋势?

最新动态

Flink 引擎

孤衫

大数据 flink 9月月更

MobTech袤博科技接入全国SDK管理服务平台,共建数智安全生态 | 新闻速递

MobTech袤博科技

大数据 数据安全

JavaScript之面向对象

楠羽

JavaScript 笔记 9月月更

出海人反脆弱,那些遭遇「刺客」突袭的虐心瞬间

融云 RongCloud

白皮书 程序员、

关于iPhone 14 Pro 的灵动岛设计的思考

宇宙之一粟

iphone 思考 设计 9月月更

Cloudflare 放弃 Nginx,使用内部 Rust 编写的 Pingora

Java-fenn

Java

上海大数据培训机构哪家好?

小谷哥

美图SRE:一次线上大事故,我悟出了故障治理的3步9招

TakinTalks稳定性社区

故障 SRE实践

阿里P6到P9的技术栈有哪些?Java程序员该如何准备学习?

收到请回复

Java 云计算 开源 架构 编程语言

哪款去水印工具好用?6款热门在线去水印工具对比评测

少油少糖八分饱

图片去水印 去水印 水印 水印消除

优雅的MVC思想

叫练

低代码平台选型6大能力:品牌/产品/技术/服务/安全/价值

优秀

低代码平台

状态监测与故障智能诊断技术在能源动力机械内燃机的应用

PreMaint

设备预测性维护 设备状态监测 内燃机状态监测 内燃机故障诊断 设备故障诊断

【9.9-9.16】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

2022年汽车智能座舱市场分析

易观分析

汽车 智能座舱

关于 NFTScan 支持以太坊合并(The Merge)的公告

NFT Research

以太坊 PoS

武汉Java培训哪家靠谱

小谷哥

哪些人适合在Java培训机构学习

小谷哥

互联网大厂裁员30%,仍靠第3版Java多线程编程笔记成功逆袭大厂

程序知音

Java 多线程 多线程与高并发 java架构师 后端技术

金九银十!100页6W字Java面试题,去大厂面试的程序员都说被问到过!

收到请回复

Java 云计算 开源 架构 编程语言

设计模式简要介绍

六月的雨在InfoQ

Java 设计模式 单例模式 23种设计模式 9月月更

音视频开发成长之路与音视频知识点总结

C++后台开发

WebRTC ffmpeg 音视频开发 流媒体服务器开发 嵌入式音视频开发

原生实现异步处理利器 —— Observable

掘金安东尼

前端 9月月更

大数据体系和SQL

孤衫

大数据 后端 sql 9月月更

自动化测试如何区分用例集合

老张

自动化测试 测试用例

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