在react应用的开发中,redux一直以来都是人们首选的状态管理方案。
然而,redux却饱受诟病:过于陡峭的学习曲线、繁琐的样板代码、复杂的异步处理、dispatch对类型检测的不友好……
redux的这些问题,相比每一位react开发者都深有感触。
如今,hooks特性的发布,为状态管理带来了更多的思路。
本文会假设你对hooks已经有了基本的了解。
什么?你还没有听说过react hooks?不妨点击这里官方对hooks的介绍。
如果我们使用hooks组织一个组件内部的state,会非常的优雅简洁,但这是否意味着我们使用hooks就不需要做全局的状态管理呢?
笔者认为,hooks最主要的作用是:
- 让组件内部的状态变得更易于编写和维护
- 解决组件逻辑的复用问题
而状态管理,其实本质上是在多个组件间(甚至是整个应用中)共享state。这一点,是hooks本身无法解决的。
然而。
hooks对状态管理所带来的,是一次降维打击。
就好比互联网的诞生和发展改变了人们相互沟通的方式,hooks对react状态管理方案的影响亦是如此。
当下很多人依旧把目光聚焦在“如何通过hooks API把redux改造的更好用”,这种思路就好比是“如何通过互联网让邮局的送信效率更高”一样可笑。
在阿里有句土话,叫“带着方案来提问题”,那么说到这里,我对react状态管理的这个问题提出的解决方案就是reto:
Reto: 基于hooks的React Store,灵活而高效
Reto是笔者在阿里做前端开发一年多以来,对React状态管理方案的沉淀,也希望能帮助到更多为状态管理而头疼的开发者们。如果你之前对hooks有所了解,那么Reto的学习成本几乎为零,但他的功能却非常强大和灵活,这些特性和使用方法在上面的文档链接中都有所介绍,因此这里不再赘述,只是贴一份简单的demo:

最后还是挂上项目的GitHub链接,欢迎 star / fork / 一同贡献代码 ~
如果在使用Reto中遇到任何问题,欢迎在GitHub issue中一同探讨~