作者:朗月清风的海角 | 来源:互联网 | 2022-12-15 17:36
我有3种类型的组件来处理表单.他们是:
EntityFormEditComponent //To Edit
EntityFormViewComponent // To Visualize
EntityFormCreateComponent // To Create
他们有一个共同的父母,他们EntityFormComponent
共享自己之间的基本逻辑.
当我创建一个新实体时,该实体从基本表单组件扩展,如下所示:
UserFormEditComponent extends from EntityFormEditComponent
UserFormViewComponent extends from EntityFormViewComponent
UserFormCreateComponent extends from EntityFormCreateComponent
这种组织我的项目的方式产生了一个问题:
我如何分享这3个组件之间的常用方法?
我认为该服务将是一种解决方案,但不是可以推荐的,因为它们不用于处理组件逻辑.
1> Vikas..:
我认为该服务是一种解决方案,但不建议使用,因为它们不用于处理组件逻辑.
Angular将组件与服务区分开来,以增加模块化和可重用性.
将复杂的组件逻辑委托给服务是一种很好的做法
从角度样式指南
将组件中的逻辑限制为仅视图所需的逻辑.所有其他逻辑应该委托给服务.
将可重用逻辑移动到服务上并使组件保持简单并专注于其预期目的.
为什么?当放置在服务中并通过函数公开时,逻辑可以被多个组件重用.
为什么?服务中的逻辑可以更容易地在单元测试中被隔离,而组件中的调用逻辑可以很容易地被模拟.
为什么?从组件中删除依赖项并隐藏实现详细信息.
为什么?保持组件纤薄,修剪和聚焦.
服务的使用在Angular中还确保您不违反DRY和SRP 软件开发原则.对于您的方案,最佳解决方案是使用服务