AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

评论

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

Java 多线程开发系列 2:创建一个线程

BigBang!

Java多线程

站群服务器优势

Geek_f19a80

中国电信国际数智化人力领先实践

用友BIP

人力资源 数智化领先实践 中国电信

当生成式AI从梦想走近现实,大语言模型未来会取代人类吗?

格致君的planB

人工智能 AI 大语言模型

向成本要效益!用友BIP助力车企突破内卷、打赢“降本战”

用友BIP

降本增效

关于稳定扩散最详细的介绍

3D建模设计

人工智能 Stable Diffusion AI自动纹理 稳定扩散

入门指导:NGINX 中的 QUIC 网络连接和加密

NGINX开源社区

DNS DDoS QUIC nginx 开源版 HTTP/3

提示找不到某些库文件?

矩视智能

深度学习 机器视觉

云服务器数据安全保障措施看这里!

行云管家

云计算 云安全 云服务器 云数据

为什么说数据安全运维难?有好用的数据安全运维平台吗?

行云管家

数字化 数据安全 数据运维 数据运维安全

软件测试/测试开发丨接口测试Mock实战练习学习笔记

测试人

软件测试 接口测试 Mock

Archicad 26中文for Mac(BIM建模软件) Archicad26破解详细安装教程

Rose

mac软件下载 建模软件 Archicad 26破解版 Archicad 26 Mac中文版 BIM软件

Stable Diffusion:最先进的文本生成图像模型

3D建模设计

人工智能 Stable Diffusion 稳定扩散 自动纹理

【慢SQL性能优化】 一条SQL的生命周期 | 京东物流技术团队

京东科技开发者

MySQL 数据库 SQL优化 企业号11月PK榜

数仓实践丨表扫描时过滤行数过多引起的性能瓶颈问题

华为云开发者联盟

数据库 数据仓库 后端 华为云 华为云开发者联盟

一种简化操作日志记录方案 | 京东云技术团队

京东科技开发者

日志 系统 日志记录 企业号11月PK榜

智慧燃气:用友BIP资产云如何实现管道资产数智化管理?

用友BIP

资产管理 智慧燃气

大模型集体失控!南洋理工新型攻击,主流AI无一幸免

Openlab_cosmoplat

人工智能 大模型

有效降低数据库存储成本方案与实践 | 京东云技术团队

京东科技开发者

数据库 存储 数据存储 降本 企业号11月PK榜

基于Java开发的供应商询价招标采购系统(SRM系统源码)

代码人,代码魂

Java springboot 采购 srm

软件测试/测试开发丨探索Python魔力:第一个程序到快捷键大揭秘

测试人

Python 软件测试

企业如何选型iPaaS平台

RestCloud

ipaas

沉浸式LED显示屏的定义和特点

Dylan

LED显示屏 沉浸式体验 沉浸式

快速教程|如何在 AWS EC2上使用 Walrus 部署 GitLab

SEAL安全

#GitLab Walrus 企业号11月PK榜

淘天Java一面,难度适中!(上篇)

王磊

Java java面试

文件传输|如何将100多G文件跨国安全传输到客户手里呢?

镭速

跨国文件传输

大模型产业生态有“成功密码”?百度高管2023进博会最新发声

飞桨PaddlePaddle

深度学习 产业生态 大模型

高性价比AWS Lambda无服务体验

查拉图斯特拉说

Lambda 亚马逊云科技 Amazon Lambda

YonGPT构筑酒旅企业AI大脑 轻松拿捏“松弛感”

用友BIP

AI YonGPT

软件研发流程、架构规范、技术标准、需求过程等全文档

代码人,代码魂

开发文档

Android下Linux创建进程的姿势(上)

江湖修行

android Linux 进程

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