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

Ale*_*lex 5 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));
    });
  }
Run Code Online (Sandbox Code Playgroud)

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

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

我读过关于 redux 的文章,但我认为 redux 并不适合所有应用程序和用例,我不应该存储对 redux 的一次性响应。

你怎么看待这件事?

谢谢

Pri*_*kar 5

reduxjs FAQ对此进行了最好的描述。

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

Redux 只是一个状态管理工具,您需要更令人信服的理由来使用它:就您的情况而言,首先:

  • 随着需求的不断增长, React 的setState会使组件变得越来越臃肿,并且维护起来更加困难。将状态管理分离到一个减速器中可以很好地重构并使其更具可读性。
  • 缓存组件状态,例如,如果您正在使用购物车、渐进式向导。在这种情况下,用户交互中有很多来回,这会导致状态更改。现在在 redux 中维护你的状态很有意义。
  • 随着需求的不断增长,深度嵌套的组件会向子组件传递状态和大量 props,很快就会变得臃肿。这是一个包含大量包装组件(尤其是 UI 细节)的经典场景。更好的方法是重构并直接将低级组件连接到 redux(转换为容器阅读:presentational-and-container-components
  • 应用程序状态映射到多个容器组件。例如,如果您的getAllGames加载状态在应用程序中某处的某些渐进式加载器组件中表示。使用 redux 将减轻您在这些组件之间共享数据的痛苦。
  • 在构建可能与任何地方进行交互的根级组件时非常有用。就像你的useraccount 组件、模态、警报、加载器一样。

您将意识到,您正在编写一些带有操作和化简器的样板代码。尽管随着时间的推移,这比反应状态管理要好得多,反应状态管理可能会在有状态组件中快速变得复杂。


yas*_*eri 3

是的,你是对的,redux 并不适合每个应用程序,据我所知,redux 或状态管理主要用于在某些操作发生时向用户显示以前的状态而不是空的状态

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

快乐编码!