Hooks时代来临,是时候放弃redux了

487 阅读2分钟

在react应用的开发中,redux一直以来都是人们首选的状态管理方案。

然而,redux却饱受诟病:过于陡峭的学习曲线、繁琐的样板代码、复杂的异步处理、dispatch对类型检测的不友好……

redux的这些问题,相比每一位react开发者都深有感触。

如今,hooks特性的发布,为状态管理带来了更多的思路。

本文会假设你对hooks已经有了基本的了解。

什么?你还没有听说过react hooks?不妨点击这里官方对hooks的介绍。

如果我们使用hooks组织一个组件内部的state,会非常的优雅简洁,但这是否意味着我们使用hooks就不需要做全局的状态管理呢?

笔者认为,hooks最主要的作用是:

  1. 让组件内部的状态变得更易于编写维护
  2. 解决组件逻辑的复用问题

状态管理,其实本质上是在多个组件间(甚至是整个应用中)共享state。这一点,是hooks本身无法解决的。

然而。

hooks对状态管理所带来的,是一次降维打击

就好比互联网的诞生和发展改变了人们相互沟通的方式,hooks对react状态管理方案的影响亦是如此。

当下很多人依旧把目光聚焦在“如何通过hooks API把redux改造的更好用”,这种思路就好比是“如何通过互联网让邮局的送信效率更高”一样可笑。

在阿里有句土话,叫“带着方案来提问题”,那么说到这里,我对react状态管理的这个问题提出的解决方案就是reto

Reto: 基于hooks的React Store,灵活而高效

Reto是笔者在阿里做前端开发一年多以来,对React状态管理方案的沉淀,也希望能帮助到更多为状态管理而头疼的开发者们。如果你之前对hooks有所了解,那么Reto的学习成本几乎为零,但他的功能却非常强大和灵活,这些特性和使用方法在上面的文档链接中都有所介绍,因此这里不再赘述,只是贴一份简单的demo:

最后还是挂上项目的GitHub链接,欢迎 star / fork / 一同贡献代码

github.com/awmleer/ret…

如果在使用Reto中遇到任何问题,欢迎在GitHub issue中一同探讨~