我什么时候选择 React state 和 Redux Store

IT技术 reactjs redux state store
2021-04-20 03:20:42

我一直在学习 Redux,我不清楚的部分是,我如何在使用 react state 与 redux store 之间做出决定,然后再调度 action。从我目前的阅读来看,我似乎可以使用 React 状态代替 Redux 存储,并且仍然可以完成工作。我理解使用 Redux 存储和只有 1 个容器组件而其余部分作为无状态组件的关注点分离,但我如何确定何时使用 React 状态与 redux 存储对我来说不是很清楚。有人可以帮忙吗?

谢谢!

3个回答

如果状态不需要与其他组件共享,或者组件卸载时不需要保持状态,那么您可以将其置于组件的状态中。

你可以认为 Redux store 是前端的数据库,如果你有从 API 中获取的产品数据之类的东西,那么 Redux store 就是正确的地方;如果您有一个下拉组件,它需要一个isOpenprop,那么该下拉组件的父级可以保持dropdownIsOpen为组件状态。

有关更多信息,这里是 Dan 的回答:https : //github.com/reactjs/redux/issues/1287

你还说

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

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

是的。另请参阅 Redux 常见问题解答中的这些答案:redux.js.org/docs/faq/... , redux.js.org/docs/faq/ReactRedux.html#react-multiple-components
2021-06-15 03:20:42

出自:

首先,我们应该始终牢记,只应将所需的最少量数据放入状态。例如,如果我们必须在单击按钮时更改标签,我们不应该存储标签的文本,而应该只保存一个布尔标志,告诉我们按钮是否已被单击。其次,我们应该只将我们想要在事件发生时更新的值添加到状态,并且我们想要让组件重新渲染。确定状态是否是存储信息的正确位置的另一种方法是检查我们正在持久化的数据是否需要在组件本身之外或其子组件之外。如果多个组件需要跟踪相同的信息,我们应该考虑在应用程序级别使用像 Redux 这样的状态管理器。

你是绝对正确的。Redux(以及一般的通量架构)只是帮助构建大型应用程序的形式主义工具。他们根本没有必要。

实际上,redux 的创建者 Dan Abramov 发表了一篇名为 You may not need redux 的有趣帖子,它可能会给你一个比我更好的答案:https : //medium.com/@dan_abramov/you-might-not-need-redux -be46360cf367#.7093fm1z8