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