使用Redux进行状态管理与提升状态

时间:2020-01-23 20:08:08

标签: reactjs redux react-redux state

读取对提升状态做出反应后,就可以理解父级如何保持共享状态,然后将其作为道具传递并根据需要重新呈现。但是,有了redux,我们可以在商店中拥有状态。那么可以违反自上而下的数据流并让兄弟组件通过redux进行交互吗?还是他们仍然应该更新父状态并让父重新渲染它们?

2 个答案:

答案 0 :(得分:1)

如果兄弟姐妹正在通过Redux进行交互,则通信仍然是自上而下的(因为他们之间没有进行通信,而是在与Redux进行通信)。

  1. 兄弟姐妹A调度Redux动作
  2. 一些减速器更新状态
  3. 同级B根据新状态进行更新

使用connect中的react-redux无需手动将道具向下传递到整个组件链。

最终,您在何处以及如何管理应用程序中的状态取决于许多不同的因素。这里没有正确的答案。我已经看到在同一个应用程序中同时使用了这两种策略。

答案 1 :(得分:1)

在我将答案发布到此处时阅读问题和答案,我想使用官方Redux style guide进一步补充布莱恩的声明:

建议让更多的UI组件订阅Redux存储并以更细粒度的级别读取数据。通常,这会带来更好的UI性能,因为在给定状态改变时需要呈现的组件更少。

例如,让<UserList>检索所有用户ID的列表,将列表项呈现为<UserList>,而不仅仅是连接<UserListItem userId={userId}>组件并读取整个用户数组,已连接<UserListItem>并从商店中提取其自己的用户条目。

这适用于React-Redux connect() API和useSelector()钩子。

相关问题