Reactjs 实体中的Redux UI状态
我正在使用Reactjs 实体中的Redux UI状态,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我正在使用normalizer,并拥有我的state.entities.users分支 在我的SPA中,有一些页面可以查看用户,并跟踪/取消跟踪他们。当您获取用户或等待followAPI调用的结果时,我们将显示一个微调器 是否有最佳实践将UI相关状态置于何处 将其存储在实体中似乎是最简单的: { entities: { [1]: { name: "Bob", followed_by_user: true }, [2]: { isFe
normalizer
,并拥有我的state.entities.users
分支
在我的SPA中,有一些页面可以查看用户,并跟踪/取消跟踪他们。当您获取用户或等待followAPI调用的结果时,我们将显示一个微调器
是否有最佳实践将UI相关状态置于何处
将其存储在实体中似乎是最简单的:
{
entities: {
[1]: {
name: "Bob",
followed_by_user: true
},
[2]: {
isFetching: true
}
[3]: {
name: "Jane",
isUpdatingFollowing: true
}
}
}
在这里存储这些数据有什么主要的缺点吗?否则,我将需要实现一个并行的缩减器形状,例如,state.ui.pages.users
,在它们响应的操作方面有很多重叠(例如,两个缩减器必须分别响应USER\u常量。USER\u FOLLOW\u SUCCESS
:一个更新state.ui.pages.users[1].IsUpdateingFollowing=false
,一个用于更新状态。实体[1]。后面是\u user=true
,而在上面的格式中,我可以一次性处理所有这些问题)。使用redux时,应尽最大努力分离关注点。在您的域中,users
是一个似乎独立于ui
状态信息的概念,因此您不妨将它们放在不同的简化程序中
您可以按照自己喜欢的方式自由地构造减缩器,但请记住,让多个减缩器响应共享操作是完全正确的。动作并不总是与特定减速器紧密耦合,即使有时(通常)是这样
这是redux的创建者自己对一个类似问题的一个很好的回答:。从关注点的角度分离使用redux的好处在于,多个还原者分别对同一个动作做出响应。否则你的减速器会越来越大。