2021 年初排名前 5 的 React 状态管理库 Redux MobX Recoil Akita Hookstate 不要忘记基础知识 结束语

2025-06-04

2021 年初排名前 5 的 React 状态管理库

Redux

MobX

畏缩

秋田

钩状状态

不要忘记基本原则

总结

今天,我为你精选了 5 个React 状态管理 ,排名不分先后。其中一些你肯定已经了解,而另一些则可能会让你感到惊讶。和往常一样,我会给你一个简短的描述,如果你感兴趣的话,一定要查看链接的文档。

无论如何,让我们开始吧!

Redux

Redux 登陆页面

Redux 登陆页面

你肯定知道这会发生。Redux  在状态管理库方面几乎  一直 稳坐第一。当然,它通常与 React 捆绑在一起,但它的核心是独立的 ,因此可以与任何 UI 库或框架一起使用。

所以,没错——Redux 确实是  同类产品中的 “默认” 。但它开始“显露出老态”  ,甚至会惹恼一些开发者。别误会我的意思——它是一个很棒的库,但它的 规模、 陡峭的学习曲线以及 冗长的 action-reducer 状态管理方法可能会让一些人想要切换。

尽管如此,Redux 仍然是同类产品中最受欢迎的,拥有最大的社区和最大的生态系统,因此它不会很快消失。

MobX

MobX 登陆页面

MobX 登陆页面

又一个惊喜,对吧? MobX类似于 Redux,但更像 2 号库。它 是一个非常流行的、 功能齐全的 状态管理库,主要(但不仅限于)用于 React。

MobX 当然 不是一个小型库,但与 Redux 相比,有些人可能会觉得它的 API 和 可观察性方法 更令人满意。对于这种类型的库来说,学习曲线仍然比较明显,但学习之后,它确实感觉很好,而且 比传统的 Redux更少重复 。

我不知道,也许只有我这么想。但另一方面,MobX 肯定不适合极简主义者。它的 API 很棒,可以写出一些非常漂亮干净的代码,但本质上它是一个很重的库,很难完全掌握。最重要的是,它的社区和生态系统也明显比较小。

畏缩

后坐力登陆页面

后坐力登陆页面

好的,现在我们正在进入一个有点未知但肯定更有趣的领域。

你可能对 Recoil很熟悉。它 在今年年初以 “Facebook 实验”的形式“上线”时,处于一个不稳定的阶段,并获得了很大的关注 

尽管它仍然是一个实验项目,但它是由 Facebook(React 的诞生地)的员工开发的事实无疑有助于 提升它的受欢迎程度,以至于有些人  现在甚至可以在生产中使用它。

但这并不意味着 Recoil 就一无是处。事实几乎完全相反!现代的 基于原子的 状态管理方法,以及流畅、 以钩子为中心的 API, 确实让它颇具吸引力。

但是,由于 Recoil 目前处于实验阶段,我建议不要在生产级项目中使用它。建议先在项目之外尝试一下,并密切关注它的开发(甚至可以 参与 开发),看看最终结果如何。

秋田

秋田登陆页面

秋田登陆页面

接下来介绍一下 Akita ,它 是一个 不太知名的 状态管理库。它与 MobX 类似,但 Akita 采用了更 面向对象 (OO)的 API,而不是像 MobX 那样的函数式 API。

因此,Akita 通过其面向对象 (OO) 方法脱颖而出。这一点尤其体现在其对 TypeScript 和 装饰器的大量使用上。虽然 TypeScript 并非专为面向对象编程 (OOP) 而设计,并且得到了广泛的支持(尤其值得一提的是,本列表中的所有库都支持装饰器),但装饰器更像是一个 利基功能。除了 Akita 之外,MobX 是本列表中唯一一个 正式支持装饰器的库,但即使是 MobX,在 v6 中也已将重点转移到了不同​​的方法上。

所以,鉴于  目前 函数式编程(FP) 和钩子 (Hook) 的热潮,以及装饰器 (Decorator) 尚未成为稳定的 JS 特性,Akita 可能并不适合你。或许正因如此,它似乎更专注于Angular  (装饰器在 Angular 中更为常见),而非 React。

但总的来说,如果你喜欢 Akita 及其 API,那么没有什么可以阻止你将它与 React 一起使用。如果你使用基于类的组件,它能与 React 完美搭配,而且它拥有优秀的文档和相当规模的社区。

钩状状态

Hookstate登陆页面

Hookstate登陆页面

我把 “最好的”留到了 最后。

Hookstate 目前是我最喜欢的 React 状态管理库,尽管它是所有库中人气最低的。它小巧、简洁、干净、可扩展,并且拥有一个 基于 hooks 的 API

这个可能适合你,但前提是你——像我一样——热爱 React Hooks。Hookstate 利用 Hooks 以及其他一些令人印象深刻的技术,提供了 卓越的开发体验 和性能。

它不仅可以用于全局状态,还可以useState()通过附加功能增强本地状态,处理 嵌套状态而不会损失性能,并 轻松 处理 异步数据!

所有这些以及更多功能都包含在一个 小的软件包中,通过简单但易于使用的 插件架构 来实现更多功能。

我强烈建议你去看看!

不要忘记基本原则

因此,此时,当我们了解了所有这些 优秀的图书馆时,我想提醒您,您 并不一定需要它们

与一些人的想法相反,使用 React 时状态管理库 并非必需 。事实上,React 提供了自己的工具——State  Context  API  。当然,使用起来可能不太方便,但当项目不太 复杂时,还是可以完成工作的。

所以,State 和 Context API 是 默认的。没有 Redux 甚至没有直接来自 Facebook 的 Recoil。只有当你 100% 确定需要,或者恰好需要的时候,才选择使用外部库。这也是我如此喜欢 Hookstate 的部分原因。它提供了许多附加功能,API 友好,同时占用空间最小。这是我能找到的最接近 “原生 React”的 解决方案。

总结

这份清单就到这里。请在评论区告诉我  对我的选择有什么看法?也许你还有其他我没列出来的选择?再次强调, 评论区是属于你的

想了解更多 Web 开发列表、教程、新闻等信息, 请关注我的 Twitter  Facebook或 我的新闻通讯。感谢阅读,祝您编程愉快! 

如果您是像我一样的技术博主,请考虑查看 CodeWrite  - 免费的“代码博客”工具,它使用适当的编辑和格式化工具(Monaco Editor 和 Prettier )处理您的代码片段,与Grammarly完美配合 ,并处理到 Dev.to、  Hashnode、  Medium和 Ghost 博客的交叉发布,具有强大的 自动填充 功能(我是否提到过它是一个浏览器扩展?),可以为您处理所有“边缘情况”(例如,将 Medium 中的代码转换为 GitHub Gist,或调整大图像的大小)。

免费试用 ,只需 每月 3 美元 或 每年 30 美元即可获得高级订阅!

文章来源:https://dev.to/areknawo/top-5-react-state-management-libraries-in-early-2021-3odd
PREV
2021 年最佳 JS 富文本编辑器框架 我们在寻找什么? 我们是如何做到的? 值得一提的 亚军 冠军 总结
NEXT
2019 年 GitHub 托管的前 20 个项目 20. AngularJS 19. Kubernetes 18. Font Awesome 17. Animate.css 16. Node.js 15. Go 14. Axios 13. Create React App 12. Electron 11. Flutter 10. React Native 9. Linux 8. VS Code 7. D3 6. JavaScript 样式指南 5. Oh My Zsh 4. Bootstrap 3. TensorFlow 2. React 1. Vue 您觉得怎么样?