我何时选择React state Vs Redux Store

时间:2017-01-11 07:03:28

标签: reactjs redux state store

我一直在学习Redux,而我不清楚的是,如何在使用react state vs redux store然后调度动作之间做出决定。从我的阅读到目前为止看起来我可以使用React状态代替Redux商店并仍然完成任务。我理解使用Redux存储的问题分离,只有1个容器组件,其余部分作为无状态组件但是如何确定何时使用React状态Vs redux存储对我来说不是很清楚。有人可以帮忙吗?

谢谢!

3 个答案:

答案 0 :(得分:32)

如果状态不需要与其他组件共享,或者在卸载组件时不需要保持状态,那么您只需将其放入组件中即可。状态。

你可以认为Redux商店是前端的数据库,如果你有从API获取产品数据的东西,那么Redux商店就是正确的地方;如果您有一个需要isOpen道具的下拉组件,那么该下拉列表的父级可以将dropdownIsOpen保留为组件状态。

有关更多信息,请参阅Dan的答案:https://github.com/reactjs/redux/issues/1287

你也说过

  

只有1个容器组件,其余部分为无状态组件

这是不正确的。您可以拥有多个容器组件。容器组件还可以包含另一个容器组件。

答案 1 :(得分:1)

你是对的。 Redux(和通用的通用架构)只是帮助构建大型应用程序的形式主义工具。它们根本不是必需的。

实际上有一个有趣的帖子叫做你可能不需要还原丹丹阿布拉莫夫,他是redux的创造者,可能会给你一个比我更好的答案:https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367#.7093fm1z8

答案 2 :(得分:1)

来自书:

  

首先,我们应该始终牢记只有最小的   所需的数据量应该放入该州。例如,如果我们   单击按钮时我们不得更改标签,我们不应该存储   标签的文本,但我们应该只保存一个布尔标志   告诉我们是否点击了按钮。其次,我们应该   仅向状态添加我们要在事件时更新的值   发生了,我们想让组件重新渲染。   另一种判断国家是否适合的方式   商店信息是检查我们是否需要持久存储的数据   组件本身之外或其子组件。如果多个   组件需要跟踪相同的信息,我们应该   考虑在应用程序级别使用像Redux这样的状态管理器。