如果使用Redux和React Redux,则无需React组件中的状态

No need for state in React components if using Redux and React-Redux?

本文关键字:React Redux 组件 状态 如果      更新时间:2023-09-26

仅使用React管理状态

我知道,如果你只使用React创建一个应用程序,你最终会在你创建的不同React组件中管理你的所有状态。

使用React和Redux管理状态

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

问题

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

对此有不同的意见,但一般的观点似乎是redux应该只包含"应用程序状态"。单个反应成分,如下降或模态,仍将有自己的状态。

不过,在这方面仍有很多争论,例如,看看这个关于如何管理本地组件状态的问题:https://github.com/reactjs/redux/issues/159

一些项目已经出现,试图解决这个"问题":

  • 还原反应局部
  • 使用reducer重新组合(更多关于局部状态而非全局状态的reducer语义)