在Angular 2上添加/显示/编辑对象的一个组件与三个组件?

在Angular 2上添加/显示/编辑对象的一个组件与三个组件?,angular,frontend,single-page-application,Angular,Frontend,Single Page Application,我需要使用户能够显示、添加和更新对象。我必须决定在Angular 2项目中使用三个组件或一个组件 选项1:一个组件 优点:易于数据共享(干式) 缺点:巨大的模板 选项2:分为3个部分 优点:SRP划分了小模板 缺点:数据共享开销(自定义事件…) 如何处理这种情况?我最好选择哪一个?还有第三种选择吗?我只想使用一个组件来触发操作,具体取决于您显示编辑UI的方式,一个或三个组件 按钮将向处理程序发送一个“mode”属性,如下所示: if ( evt === 'edit' ) { do som

我需要使用户能够显示、添加和更新对象。我必须决定在Angular 2项目中使用三个组件或一个组件

选项1:一个组件

  • 优点:易于数据共享(干式)
  • 缺点:巨大的模板
选项2:分为3个部分

  • 优点:SRP划分了小模板
  • 缺点:数据共享开销(自定义事件…)

如何处理这种情况?我最好选择哪一个?还有第三种选择吗?

我只想使用一个组件来触发操作,具体取决于您显示编辑UI的方式,一个或三个组件

按钮将向处理程序发送一个“mode”属性,如下所示:

if ( evt === 'edit' ) { do something edit-ish... }
if ( evt === 'add' ) { do something add-ish... }
if ( evt === 'delete' ) { do something delete-ish...}
等等。对于实际的编辑字段本身,您可以只切换模板中的一些属性(例如,将输入字段的样式更改为“可编辑”,可能使用指令),或者如果您正在做一些非常复杂的事情,则可以创建单独的组件

记住,关键是另一个开发人员应该能够轻松地破译它。如果“一个组成部分来统治他们所有人”的事情妥协了这一点,那么选择是明确的。把它拆开