【问题标题】:No need for state in React components if using Redux and React-Redux?如果使用 Redux 和 React-Redux,则不需要 React 组件中的状态?
【发布时间】:2016-07-12 13:33:40
【问题描述】:

仅使用 React 管理状态

我了解,如果您仅使用 React 创建应用程序,您最终将在您创建的不同 React 组件中管理所有状态。

使用 React 和 Redux 管理状态

如果您决定将 Redux 与 React 结合使用,则可以将每个 React 组件的所有状态移动到整个 Redux 应用程序状态。然后,每个需要 Redux 应用程序状态切片的组件都可以通过 React-Redux 的 connect 函数挂钩到该状态。

问题

这是否意味着您不再需要编写任何 React 组件来处理 React 的 state(即 this.setState),因为 React-Redux 是 connect通过将数据传递到 @ 来使用 Redux 状态的 React 组件987654327@ 组件为props?

【问题讨论】:

  • 是的。无论您是否应该需要关于您的应用程序的更多讨论和细节。不过,拥有单一的事实来源总是很好。
  • 当您仍然只想坚持使用 React,但正在寻找一种更轻量级的方法来处理组件状态时,您可以添加一个状态管理库,如 MobX (mobxjs.github.io/mobx)。它可以帮助您处理内部组件状态 (medium.com/@mweststrate/…),还可以将状态存储在组件之外。

标签: javascript reactjs redux react-redux


【解决方案1】:

对此众说纷纭,但普遍的看法似乎是redux应该只包含“应用程序状态”。下拉菜单或模态框等单个反应组件仍将具有自己的状态。

尽管如此,仍有很多争论,请查看这个问题,例如关于如何管理本地组件状态:https://github.com/reactjs/redux/issues/159

已经出现了一些试图解决这个“问题”的项目:

【讨论】:

  • 我支持这个。让我们听听 Redux 的创建者怎么说 :) twitter.com/dan_abramov/status/623097205386293248
  • 我也同意:状态可能很有用,例如对于输入组件,用户可以在其中编辑输入字段,仅在小周期内更新状态。当状态变化(输入字段的内容)可以包含到小的反应组件中,而不需要世界其他地方知道。仅当用户按下回车键等时才需要进入 Redux 的全周期(可能触发许多其他方法)。
  • 我同意,Redux 是一种将全局状态收集到存储中的工具,只有在需要连接状态时才应使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-29
  • 2018-07-17
  • 2016-01-17
  • 2019-08-10
  • 2018-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多