Angular 角度(2+;)组件结构和设计-最佳实践

Angular 角度(2+;)组件结构和设计-最佳实践,angular,architecture,Angular,Architecture,这是一个建筑设计问题 我有一个名为X的mySQL表。 我从一个有角度的2+前端对它进行积垢操作 首先,我创建了一个组件,我碰巧调用了createnew。这家伙现在在/create new路线上运行 但是,正如我所开发的,这个createnew组件(及其.ts、.html和.css好友)已经变得非常通用,不仅可以处理createnew(因此插入)情况,还可以处理更新 此更新不仅可以在创建新操作之后立即工作(使用新插入的ID),以允许立即更新新创建的记录,还可以加载另一个记录的数据以提供其更新表单

这是一个建筑设计问题

我有一个名为X的mySQL表。 我从一个有角度的2+前端对它进行积垢操作

首先,我创建了一个组件,我碰巧调用了
createnew
。这家伙现在在
/create new
路线上运行

但是,正如我所开发的,这个createnew组件(及其.ts、.html和.css好友)已经变得非常通用,不仅可以处理createnew(因此插入)情况,还可以处理更新

此更新不仅可以在创建新操作之后立即工作(使用新插入的ID),以允许立即更新新创建的记录,还可以加载另一个记录的数据以提供其更新表单

因此,很自然地,这个/create new route现在能够处理基于参数的请求,例如/create new/?action=edit&rec_id=10

我喜欢这样一个事实:最初的createnew代码库很容易升级到这个功能。既然插入、更新操作已经完成,人们不禁会想,为什么我不添加删除、列表视图和细节视图功能并完成它呢。这就是建筑设计的问题,需要挑选有经验的头脑

这种方法的优点是,我有一个组件,它映射到一个文件夹,一个.ts,.html,.css和服务器端的.php页面,该页面非常适合与表X一起使用。这使得复制此功能非常容易,以获得另一个集,该集可以处理表Y上的所有CRUD需求,只需对克隆的基础进行很少的调整

我知道常见的模式是一个用于创建新的组件,一个用于查看记录,一个用于查看列表等等

我的问题是:这种“一劳永逸”的方法(我刚才描述的)在所有情况下都是绝对禁止的吗

或者,我们可以说,嘿,这不是什么大不了的事,事实上,这可能是根据具体情况推荐的方法吗

如果可以采用这种整合的方法,我只需更改名称createnewwithmanage-X,就可以了。然后下一个家伙将被命名为manage-y等等。我确实意识到,使用这种方法,HTML部分可能会对这种“一刀切”风格更加敏感。在这种情况下,我将不得不处理一个较长的.HTML文件(它不仅承载与表X对话的add edit表单,而且还包含显示表X记录的视图列表和视图详细情况)。但这是我可以接受的限制

再次回到问题上

难道永远不应该采用这种方法吗? 或者在某些情况下,它保证这应该是一条出路


如果可以构建这样的组件,那么决定采用这种整合方法的主要标准是什么?

实际上有一些风格指南说不应该这样做,但恰恰相反。组件应该尽可能小,并遵循单一责任原则

从文档:

将单一责任原则(SRP)应用于所有组件, 服务和其他符号。这有助于使应用程序更干净、更简单 阅读和维护,更易于测试


参考:

实际上,有一些风格指南说不应该这样做,但恰恰相反。组件应该尽可能小,并遵循单一责任原则

从文档:

将单一责任原则(SRP)应用于所有组件, 服务和其他符号。这有助于使应用程序更干净、更简单 阅读和维护,更易于测试


ref:

所以,这是肯定的……在所有情况下都是绝对禁止的。对吗?从我的经验和官方指南(至少从我的阅读方式来看)-绝对禁止。我想不出任何一个原因为什么会有人想这样做(当然除了受虐狂的原因:)。所以,这是肯定的。。。在所有情况下都是绝对禁止的方法。是吗?从我的经验和官方指南(至少从我阅读的方式来看)来看,绝对不是。我想不出任何一个理由为什么会有人想这样做(当然除了受虐狂的理由:)。