2016-03-24 59 views
13

管理状态作出反应只有如果使用Redux和React-Redux,不需要React组件中的状态?

我明白,如果你正在使用才反应过来创建一个应用程序,你最终将创建不同的反应的组分中管理所有状态。

管理与反应,终极版

如果你决定使用Redux的结合反应,然后你可以将所有的状态,从每个反应的组分到整体终极版应用程序状态的状态。然后,每个需要一小部分Redux应用程序状态的组件可以通过React-Redux的connect函数挂钩到该状态。

问题

这是否意味着你不再需要编写任何阵营与处理成分发生化学反应的state(即this.setState),因为阵营 - 终极版是connect荷兰国际集团通过将数据传递到阵营与终极版状态的组件container组件为props

+2

是的。无论你是否应该需要关于你的应用程序的更多讨论和细节。尽管有单一的事实来源总是很好的。 – azium

+1

尽管您只想坚持React,但正在寻找更轻量级的方法来处理组件状态,您可以添加像MobX(https://mobxjs.github.io/mobx/)这样的状态管理库。它可以帮助您处理内部组件状态(https://medium.com/@mweststrate/3-reasons-why-i-stopped-using-react-setstate-ab73fc67a42e#.5xoga86e9),还可以将状态存储在您的零件。 –

回答

8

对此有不同的看法,但一般的看法似乎是,redux应该只包含“应用程序状态”。个人反应组件如下拉菜单或模式仍然会有自己的状态。

还有很多在这场争论虽然,看看这个问题,例如如何管理本地组件的状态:https://github.com/reactjs/redux/issues/159

部分项目已经弹出正在试图解决这个“问题”:

+4

我第二个这个。让我们来听听Redux的创造者说什么:) https://twitter.com/dan_abramov/status/623097205386293248 – dannyjolie

+2

我同意:state可以是有用的,例如,对于输入组件,用户可以在其中编辑输入字段,仅在小周期内更新状态。当状态变化(输入字段的内容)可以包含在小反应组件中时,而不需要世界其他地方知道。如果需要全循环到Redux(可能触发许多其他方法),只需要用户按下Enter等。 – wintvelt

+0

我同意,Redux是一种将全局状态收集到商店中的工具,只有当状态需要连接。 – Sequential

相关问题