【问题标题】:Do you need redux for a multiuser Reactjs app?多用户 Reactjs 应用程序需要 redux 吗?
【发布时间】:2021-04-08 07:23:15
【问题描述】:

也许有一个幼稚的问题,但我真的找不到一个直接的答案,你什么时候更喜欢 Redux 而不是 React Hooks。 我是 Reactjs 的新手,目前我正在为一个客户端开发一个多用户、博客、在线商店应用程序。该项目分为两个阶段: 第 1 阶段 - 仅涉及与 Firebase 数据库的 CRUD 交互 但 第 2 阶段 - 将拥有多用户系统和在线商店 - 基于每个用户通过观看添加和发布博客赚取积分的系统来销售游戏。 现在,第 1 阶段很简单,React Context hook 已经足够了,但现在我想知道 React Hooks 是否足以满足第 2 阶段的需要,还是我必须花时间学习 Redux?

【问题讨论】:

    标签: java reactjs react-redux react-hooks


    【解决方案1】:

    随着应用程序变得越来越复杂,我建议切换到 redux。

    在 redux 中,组件订阅多个状态,并且仅当这些状态发生变化时才会重新渲染。

    在上下文中,每个组件都有整个上下文对象,即使不相关的状态发生变化也会重新渲染。

    如果性能不是优先事项,您可以使用坚持上下文。

    【讨论】:

    • 很好的解释。谢谢。
    【解决方案2】:

    上下文不会将发生的事情(例如用户点击保存)与发生这种情况时应用程序需要执行的操作(例如保存一些数据)以及如何获取结果数据(例如失败、成功的数据)分开。

    在 redux 中,所有这些东西都是分开的;

    • 发生了什么事:调度一个动作
    • 发生情况时实现:reducers 和中间件
    • 组件或中间件需要保存状态:选择器

    redux 使用的模式是事件存储,可以在 redux-devtools 中使用,以在更改 reducer 后重放一系列操作,以查看是否修复了问题,以及 CQRS 将写入状态与获取状态值分开,从而导致松散耦合的代码和更好的可重用性。

    Redux 具有更多的抽象性并且需要更长的设置时间,但可以更轻松地实现复杂的需求(如果您知道自己在做什么)和维护您的项目。

    上下文可防止道具钻探,并且易于实现简单的要求,但随着项目复杂性的增加,它会变得更加困难。

    【讨论】:

      猜你喜欢
      • 2016-08-27
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      • 2018-11-22
      • 1970-01-01
      • 2017-01-11
      • 2019-06-15
      • 2022-01-05
      相关资源
      最近更新 更多