具有多个REST端点和重用组件的Redux/React应用程序体系结构

具有多个REST端点和重用组件的Redux/React应用程序体系结构,rest,reactjs,architecture,redux,json-api,Rest,Reactjs,Architecture,Redux,Json Api,我们正在使用react和redux开发一个类似CRM的大型应用程序。应用程序的核心部分主要为许多不同的数据库对象显示三种不同的视图。例如,我们的系统中有一个用户路由。一个概览页面,显示所有用户的分页列表。显示单个用户详细信息的详细视图。以及关系视图,其中显示与该用户相关的对象列表,例如该用户所在的组。多个此类视图可能位于同一路由下的同一页面上 由于这些视图中的大多数对于所有类型的资源都非常相似,因此我们有general ResourceOverview、ResourceDetail和Resour

我们正在使用react和redux开发一个类似CRM的大型应用程序。应用程序的核心部分主要为许多不同的数据库对象显示三种不同的视图。例如,我们的系统中有一个用户路由。一个概览页面,显示所有用户的分页列表。显示单个用户详细信息的详细视图。以及关系视图,其中显示与该用户相关的对象列表,例如该用户所在的组。多个此类视图可能位于同一路由下的同一页面上

由于这些视图中的大多数对于所有类型的资源都非常相似,因此我们有general ResourceOverview、ResourceDetail和ResourceRelationship视图

对于所有资源,数据获取的工作方式也非常相似,因此我们有一个ListDataSource、ItemDataSource和RelationshipDataSource。这些类包含redux thunk操作创建者,用于处理请求的结果和参数,如项、页、项页面和顺序,如load、setPage、setOrder和Reducer

这一切都很好,但我们面临的一个问题是,这些数据源和我们的react组件之间的连接可能变得非常复杂和难以理解。我希望能够组成一个页面组件,该组件由连接到不同数据源的多个视图组成。理想情况下,我希望每个路由都有一个容器组件,指定要使用哪些视图来显示哪些数据源,使用connect函数让数据源访问存储,并将数据源传递给使用数据的纯组件,并在数据源上启动操作

我的第一个问题是:这一切听起来合理吗?还是这个设计有缺陷

我的第二个问题是:我如何有效地将这样一个数据源对象(它有助于检索状态的正确部分并允许分派操作)传递到纯组件的深层结构中,而不必一直将所有道具传递到树上?或者有更好的方法替代这些数据源对象吗