写点什么

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

评论

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

极限科技闪耀 2024 可信数据库发展大会,多款自研产品引领搜索技术新纪元

极限实验室

信通院 极限科技 数据库发展大会

硅纪元视角 | Stability AI推出Stable Video 4D,40秒生成8角度动态视频!

硅纪元

Stable Video 4D Mistral Large 2 “Frame”眼镜 HoloDreamer

人工智能|ReACT 推理提示

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

测试

电信行业怎么定义?需要采购堡垒机吗?

行云管家

网络安全 数据安全 堡垒机 电信

和鲸科技参与第17届中国R会议,分享有组织科研的模型生命周期管理

ModelWhale

人工智能 R 数据科学 AI4S

在 Go 中如何让结构体不可比较?

伤感汤姆布利柏

PHP 与淘宝详情 API 的融合:构建智能电商应用

api开发

最新资讯!2024可信云大会重磅发布《可观测性能力建设指南》!

乘云数字DataBuff

白皮书 可观测平台 可信云大会

Apache Doris + Paimon 快速搭建指南|Lakehouse 使用手册(二)

SelectDB

数据湖 Doris LakeHouse 湖仓一体 paimon

数字样机:飞行器状态控制系统仿真

DevOps和数字孪生

数字样机

从0到1:理发店预约剪发小程序开发笔记(上)

CC同学

得物App弱网诊断探索之路

得物技术

ios android 企业号2024年7月PK榜

华为云Serverless可观测性解决方案打造高效、可靠的云原生应用

华为云开发者联盟

云原生 可观测 华为云开发者联盟 企业号2024年7月PK榜

崖山异构数据库迁移利器YMP初体验-Oracle迁移YashanDB

YashanDB

yashandb 崖山数据库 崖山DB

数据恢复easyrecovery是磁盘工具吗 easyrecovery数据恢复软件怎么用

阿拉灯神丁

磁盘 EasyRecovery 数据恢复软件 硬盘数据恢复 软件包

Apache Doris 2.1.5 版本正式发布

SelectDB

倒排索引 Doris 半结构化数据 湖仓一体 物化视图

人工智能|ReACT 推理提示

霍格沃兹测试开发学社

Solana行情为何坚挺?强劲基本面和ETF预期吸引资本流入

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

即时战略游戏:帝国时代2 for Mac 3.3.1769 中文移植版

你的猪会飞吗

mac软件下载 mac单机游戏

获取闲鱼商品详情api

api开发

Apache Doris + Apache Hudi 快速搭建指南|Lakehouse 使用手册(一)

SelectDB

数据湖 Doris Hudi LakeHouse 湖仓一体

ETL数据集成丨将PostgreSQL数据库数据实时同步至PostgreSQL

RestCloud

postgresql 数据同步 ETL 数据集成平台 数据库同步

文献解读-临床试验-第二十二期|《新抗原负荷作为中国非小细胞肺癌II/III患者的预后和预测标志物》

INSVAST

基因测序 基因数据分析 临床试验

LED租赁屏市场

Dylan

LED LED display LED显示屏 市场 舞台表演

技术路线速通!用飞桨让京剧人物照片动起来

百度Geek说

百度飞桨 企业号2024年7月PK榜

深度解读GaussDB(for MySQL)与MySQL的COUNT查询并行优化策略

华为云开发者联盟

MySQL 数据库 华为云开发者联盟 企业号2024年7月PK榜

解读阿里云搜索开发工作台如何快速搭建AI语义搜索及RAG链路

阿里云大数据AI技术

人工智能 自然语言处理 大模型 rag

大庆正规等保测评机构有几家?在哪里?

行云管家

等保 等保测评 大庆

开发者必备:淘宝商品列表接口集成全攻略

tbapi

淘宝API接口 淘宝商品列表数据接口 淘宝商品列表数据采集

极盾故事|某农商行数据安全制度和数据分类分级建设

极盾科技

数据安全 数据分类分级

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