什么时候应该在我的React应用程序中使用Redux?

时间:2019-06-19 04:17:15

标签: javascript reactjs redux

我正在使用React Web应用程序,或者公司购买了管理仪表板面板以节省时间。在此面板中,他们使用redux处理状态,并将所有设置参数存储到redux ...

但实际上我很困惑在每个用例中都使用readux!

我所有的请求和状态都是基于组件的,并且不是全局的,并且对于在此应用程序的其他组件中使用不是必不可少的!

例如,要加载游戏列表,我有以下代码:

componentDidMount() {
    this.setState({
      loading: true
    });
    http._GET('/game/getAllGames')
    .then(response => {
      this.setState({
        loading: false
      });
      this.props.dispatch(gamesListAction(response.data.result.games));
    });
  }

在这种情况下,我使用响应并仅列出游戏列表页面。所以我认为将response.data存储到redux中,然后通过connect和其他进程获取所有数据是不合逻辑的。

或者其他示例,对于插入表单,我将不需要存储表单插入或API响应,因为它是插入的,而不是从API获取数据!

我已阅读过有关redux的文章,但我认为redux不适用于所有应用程序和用例,我不应该存储对redux的单次使用响应。

您如何看待这件事?

谢谢

2 个答案:

答案 0 :(得分:1)

是的,您是正确的redux并不适合每个应用程序,根据我的知识redux或状态管理主要用于如果您想在发生某些操作时向用户显示以前的状态而不是空状态

这是有关何时使用redux的详细说明 https://medium.com/@fastphrase/when-to-use-redux-f0aa70b5b1e2

快乐编码!

答案 1 :(得分:0)

reduxjs FAQ描述得最好。

通常,当您有合理数量的数据随时间变化时,需要使用Redux,您需要一个单一的事实来源,并且您发现将所有内容保持在顶级React组件状态的方法不再足够了。

Redux仅仅是一种状态管理工具,您需要更多有说服力的理由才能使用它: 对于您的情况,首先:

  • React的 setState 会随着需求的增长而使组件超时超时。 难以维护。将状态管理分为减速器 可以很好地重构并使其更具可读性。
  • 缓存组件状态,例如,如果您使用购物车,则使用渐进式向导。在这种情况下,用户交互中有很多来回的动作会导致状态改变。现在,在redux中保持状态非常有意义。
  • 深层嵌套的组件传递给孩子的状态和大量道具,随着需求的增长而迅速膨胀。这是具有许多包装器组件(尤其是带有UI详细信息)的经典方案。更好的方法是重构低级组件并将其直接连接到redux(转换为容器。阅读:presentational-and-container-components
  • 应用程序状态映射到多个容器组件。。例如,如果您的 getAllGames 加载状态要用某些 progressive-loader-component 表示, em>在您的应用中的某处。使用redux可以减轻您在这些组件之间共享数据的痛苦。
  • 在构建可能具有来自各处的交互作用的根级组件时很有用。像您的用户帐户组件,模式,警报,加载程序

您将意识到,您正在编写带有动作和简化程序的样板代码。尽管加班要比对状态管理做出反应要好得多,因为状态管理可以使有状态组件内部的复杂性迅速增加。