可能有一个天真的问题,但实际上我找不到一个直接的答案,你什么时候更喜欢Redux而不是React Hooks。我是Reactjs的新手,目前我正在为诊所开发一个多用户、博客、在线商店应用程序。该项目分为两个阶段:阶段1-仅涉及CRUD与Firebase DB的交互但是第二阶段-将有一个多用户系统和一个在线商店销售游戏,基于每个用户通过观看添加和发布博客赚取积分的系统。现在,第1阶段很容易,React Context钩子已经足够了,但现在我想知道React钩子对第2阶段来说足够了吗?还是我必须拼写和时间来学习Redux?
随着应用程序变得越来越复杂,我建议切换到redux。
在redux中,组件订阅了几个状态,并且只有当这些状态发生变化时才会重新呈现。
在上下文中,每个组件都有整个上下文对象,即使不相关的状态发生更改,也会重新渲染。
如果性能不是一个优先事项,您可以使用"坚持上下文"。
Context并没有将发生的事情(例如用户点击保存(与应用程序在发生这种情况时需要做什么(例如保存一些数据(以及如何获取结果数据(例如失败、数据成功(分开。
在redux中,所有这些东西都是分开的;
- 发生了一些事情:调度一个操作
- 在出现问题时实现:减速器和中间件
- 组件或中间件需要保存状态:选择器
redux使用的模式是事件存储,可以在redux devtools中使用它来在更改reducer后重播一系列操作,以查看您是否解决了问题,以及CQRS,它将写入状态与获取状态值分离开来,从而产生松散耦合的代码和更好的可重用性。
Redux具有更多的抽象性,需要更长的时间来设置,但它将使实现复杂的需求(如果你知道自己在做什么(和维护项目变得更容易。
上下文可以防止道具钻取,并且很容易实现简单的需求,但随着项目的复杂性增加,它会变得更加困难。