react全局状态管理_Hooks 时代的 React 状态管理方案

在React Hooks发布后,状态管理方案出现了新的趋势。纯Hooks实现如constate和unstate-next主张简化状态管理,通过提供共享模式来避免复杂库。然而,这种方式可能需要额外的Provider,并缺乏优化。另一种方案是定义model后再以Hooks消费,如Overmind和Ayanami,提供更丰富的功能但有学习成本。Dva和Redux因样板代码多和对TypeScript支持不足而受到批评,未来可能转向更简洁的model方案,以降低复杂性和提高TypeScript兼容性。
摘要由CSDN通过智能技术生成

f8437bc3ac625a1b30b97116609dfb45.png
本文是对回答《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 的方式消费

使用这类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值