读取对提升状态做出反应后,就可以理解父级如何保持共享状态,然后将其作为道具传递并根据需要重新呈现。但是,有了redux,我们可以在商店中拥有状态。那么可以违反自上而下的数据流并让兄弟组件通过redux进行交互吗?还是他们仍然应该更新父状态并让父重新渲染它们?
答案 0 :(得分:1)
如果兄弟姐妹正在通过Redux进行交互,则通信仍然是自上而下的(因为他们之间没有进行通信,而是在与Redux进行通信)。
使用connect
中的react-redux
无需手动将道具向下传递到整个组件链。
最终,您在何处以及如何管理应用程序中的状态取决于许多不同的因素。这里没有正确的答案。我已经看到在同一个应用程序中同时使用了这两种策略。
答案 1 :(得分:1)
在我将答案发布到此处时阅读问题和答案,我想使用官方Redux style guide进一步补充布莱恩的声明:
建议让更多的UI组件订阅Redux存储并以更细粒度的级别读取数据。通常,这会带来更好的UI性能,因为在给定状态改变时需要呈现的组件更少。
例如,让
<UserList>
检索所有用户ID的列表,将列表项呈现为<UserList>
,而不仅仅是连接<UserListItem userId={userId}>
组件并读取整个用户数组,已连接<UserListItem>
并从商店中提取其自己的用户条目。这适用于React-Redux
connect()
API和useSelector()
钩子。