我们目前正在重构我的团队中的Angular应用程序,并且我们正在采用NGRX库(Store,Effects ...)。我们对Redux模式有点陌生,我们有很多可重用的组件。
例如,我们有一个Projects
的主模块,其中包含一个容器组件,然后仅在底部显示项目列表和多选栏。在此组件中,您可以Delete
,Download
并对列表中的每个项目执行3或4个以上的操作。另外,您可以选择2个或更多项目,并执行与批量操作相同的操作。
我看到的问题是,在我们开始重构应用程序之前,我们在另外两个主要模块中使用了此组件,但有一点不同。在主要的Projects
模块中,我们显示所有项目,在另一个模块中,我们重用相同的组件以显示由parent id
过滤的所有项目,而在另一个模块中,我们使用相同的组件以显示由ancestor id
过滤的所有项目。 projects
。
在所有这些组件中,状态将相同(selected projects
的列表和Effects
的列表)。您可以对项目执行的操作也相同。
那么,在这一点上,处理这些组件可重用性的最佳方法是什么?我曾经考虑过从主模块重用Store接口,然后重写所有效果和reducer。但是如果我需要对Reducer
或{{1}}中的任何一个进行更改,每次都必须编辑三个文件...这里的主要方法是什么?谢谢!