Reactjs 我们是否应该为作为api响应接收的单个对象制作不同的缩减器,以避免复杂性。或者有一个减速器
我有一个api响应,比如 预订-> 预订详情, 嘉宾名单, 笔记, 嘉宾们注意到, 文件, 预订活动, 付款, 电子邮件等 上面的每一项都有添加/编辑/删除等操作,因此将它们放在一个reducer中会使reducer变得非常大,并且很难管理。Reactjs 我们是否应该为作为api响应接收的单个对象制作不同的缩减器,以避免复杂性。或者有一个减速器,reactjs,redux,Reactjs,Redux,我有一个api响应,比如 预订-> 预订详情, 嘉宾名单, 笔记, 嘉宾们注意到, 文件, 预订活动, 付款, 电子邮件等 上面的每一项都有添加/编辑/删除等操作,因此将它们放在一个reducer中会使reducer变得非常大,并且很难管理。 我应该每个项目有一个减速机吗?如果我这样做了,那么如何将数据传递给特定的还原器。e、 g.成功获取预订详细信息后,我会将不同的项目分别传递给不同的还原器吗?这是一种良好且易于管理的方法吗?这取决于您的应用程序结构。您应该为每个父组件创建一个减速机,但是如果
我应该每个项目有一个减速机吗?如果我这样做了,那么如何将数据传递给特定的还原器。e、 g.成功获取预订详细信息后,我会将不同的项目分别传递给不同的还原器吗?这是一种良好且易于管理的方法吗?这取决于您的应用程序结构。您应该为每个父组件创建一个减速机,但是如果您觉得它越来越大并且面临管理困难,那么您应该找出您使用的子组件,并为它们单独创建减速机
要轻松地管理应用程序并使其可重用,最好的方法是遵循以下步骤。但是,我再次说,这将取决于应用程序的架构。 < P>您应该考虑每个项目类型(例如,代码>预订< /代码>,<代码>客户>代码>代码>文档>代码>等。阅读redux文档中的内容。您可以考虑使用包和/或ReDux工具包来完成一些工作。 每个实体都可以被视为相同的,您只需要在操作中包含足够的信息,以识别您所在状态中的正确对象(即
类型
和id
)
您可以抽象地处理不同的实体,但也可以创建特定的选择器
const getEntity = (state, type, id) => state[type][id];
const getBooking = (state, id) => state.booking[id];
当您得到一个包含许多实体的API响应时,您将首先对其进行规范化,然后通过一个操作存储所有实体
{
type: 'UPDATE_ENTITY',
payload: {
type: 'booking',
id: 5,
changes: { /*...*/ }
}
}