Angular 2 的 CRUD 组件的不同方法

A different approach to CRUD components with Angular 2

我目前正在开发一系列带有Angular 2的增删改查组件。目前我在网上找到的所有示例都在组件内部提供了Http服务。换句话说,创建资源的组件(我们称之为 ResourceCreate)包括使用 Http class 在远程服务器上创建资源的代码。同样,显示包含所有资源的列表的组件(我们称之为 ResourceList)包含使用 Http class 从服务器获取资源列表的代码。

除非您想要使用 ResourceList 来呈现尚未位于服务器上但在客户端临时生成的资源列表,否则它工作得很好。另一个示例是使用 ResourceCreate 仅键入资源信息,但将其保存在本地而不是服务器上。以上两种情况,组件中有Http服务是多余的。

所以我对这些组件的想法如下:

通过使用该方法,CRUD 组件对资源存储一无所知。因此,如果我们的资源位于本地或文件中,我们唯一需要更改的是父组件而不是 CRUD 组件 themselves.This 使 CRUD 组件更可重用。

我想了解这种方法是否有缺点。为什么我在 Internet 上找到的 none 个 CRUD 示例不使用这种方法,而是将 Http 服务嵌入到 CRUD 组件中?有什么想法吗?

提前致谢。

根据angular.io

A Component controls a patch of screen real estate that we could call a view

这意味着理想情况下,我们应该创建具有关联视图的组件。您的方法的缺点是您创建的组件将经历完整的组件生命周期,这将是您的情况的开销,因为您没有任何关联的视图。

此外,如果不在视图中放置元素,就无法创建架构。任何组件的通信部分都应该独立于视图。

更好的选择是创建一个包装存储机制(http/ 本地)并将其注入 CRUD 组件的服务。这允许将 CRUD 组件与数据存储隔离。