如果使用Redux和React-Redux,在React组件中是否需要状态?

wmo*_*ock 13 javascript reactjs redux react-redux

仅使用React管理状态

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

使用React和Redux管理状态

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

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

bry*_*nph 8

对此有不同的看法,但一般的看法似乎是redux应该只包含"应用程序状态".单个反应组件如下拉或模态仍将具有自己的状态.

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

有些项目正在试图解决这个"问题":

  • 我是第二个.让我们听听Redux的创造者说的话:) https://twitter.com/dan_abramov/status/623097205386293248 (4认同)
  • 我同意:状态对于输入组件是有用的,其中用户可以编辑输入字段,仅在小周期中更新状态.当状态改变(输入字段的内容)可以包含在小反应组件中时,不需要世界其他地方知道.只有当用户按下输入等时才需要进入Redux全周期(可能触发许多其他方法). (2认同)