本文是对回答《React Hooks 自去年 10 月发布以来,社区和国内外团队的接受程度如何?》的延伸。
在 React 团队发布 Hooks 之前,React 状态管理方案的主流选择,基本上就是 Redux 和 Mobx。不过社区中一直都有“你不需要 Redux”的呼声,各种号称要取代 Redux 状态管理方案也都层出不穷。随着 Hooks 的发布,React 社区又掀起了一波基于 Hooks 的造轮子大潮。目前看来,基于 Hooks 的状态管理方案大致可以分为两大类。
纯 Hooks 实现
以 constate 和 unstate-next 为代表的纯 Hooks 方案。其核心思想还是“你不需要状态管理库”,利用 Hooks 你就可以很好的管理状态了。所以这类方案的实现也非常简单,两个库的代码都在 50 行以内。他们更多的是提供了一种定义 Hooks 并且将状态共享的模式。
这类方案的优点就是简单,没有花里胡哨的概念,你写的就是 React Hooks,社区大量的 Hooks 库也可以直接拿来用。
缺点就是你要把 Hooks 的状态变成全局的话你的应用需要套一大堆 Provider。而且因为其简单的实现,这类方案也不会对 consumer 组件做优化,要优化就需要自己用 React.memo
。
先定义 model,再以 Hooks 的方式消费
使用这类