Angular 角度为2的积垢分量的另一种处理方法

Angular 角度为2的积垢分量的另一种处理方法,angular,crud,reusability,angular2-components,Angular,Crud,Reusability,Angular2 Components,我目前正在开发一系列带有Angular 2的积垢组件。到目前为止,我在网上找到的所有示例都在组件中包含Http服务。换句话说,创建资源的组件(称之为ResourceCreate)包括使用Http类在远程服务器上创建资源的代码。类似地,显示包含所有资源的列表的组件(称之为ResourceList)包括使用Http类从服务器获取资源列表的代码 除非您希望(例如)使用ResourceList呈现尚未位于服务器上但在客户机上临时生成的资源列表,否则此操作非常有效。另一个示例是使用resourcecore

我目前正在开发一系列带有Angular 2的积垢组件。到目前为止,我在网上找到的所有示例都在组件中包含
Http
服务。换句话说,创建资源的组件(称之为
ResourceCreate
)包括使用
Http
类在远程服务器上创建资源的代码。类似地,显示包含所有资源的列表的组件(称之为
ResourceList
)包括使用
Http
类从服务器获取资源列表的代码

除非您希望(例如)使用
ResourceList
呈现尚未位于服务器上但在客户机上临时生成的资源列表,否则此操作非常有效。另一个示例是使用
resourcecoreate
仅键入资源信息,但将其保存在本地,而不是服务器上。在上述两种情况下,在组件中使用
Http
服务是多余的

因此,我对这些组件的想法如下:

  • 创建父组件并附加所有CRUD子组件(例如,
    ResourceCreate
    ResourceList
  • 与其使用
    Http
    提交或接收数据,不如让父组件将数据传递到
    Input()s
    或侦听CRUD子组件的
    Output()
    事件。例如,让父组件执行
    Http
    请求以获取资源列表,然后将该列表传递给
    ResourcetList
    组件。另一个示例是让
    resourcecoreate
    组件与资源描述一起发出
    submit
    事件。父组件将捕获此事件,然后父组件将其提交给服务器
通过使用这种方法,CRUD组件对资源存储一无所知。因此,如果我们的资源位于本地或文件中,我们唯一需要更改的是父组件,而不是CRUD组件本身。这使得CRUD组件更易于重用

我试图理解这种方法是否有缺点。为什么我在互联网上找到的CRUD示例都没有使用这种方法,而是将
Http
服务嵌入CRUD组件中?有什么想法吗

提前感谢。

根据

一个组件控制一块屏幕不动产,我们可以称之为视图

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

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


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

你说得对,更改服务听起来是个更好的主意。非常感谢我的朋友!