我目前正在使用 Angular 2 开发一系列 CRUD 组件。到目前为止,我在网上找到的所有示例都有Http
组件内部的服务。换句话说,创建资源的组件(让我们称之为ResourceCreate
)包括使用Http
类在远程服务器上创建资源的代码。类似地,显示所有资源列表的组件(让我们称之为ResourceList
)包括使用Http
该类从服务器获取资源列表的代码。
这很好用,除非您想使用ResourceList
来呈现尚未位于服务器上但它们是在客户端临时生成的资源列表。另一个示例是使用ResourceCreate
just 来键入资源信息,但将其保存在本地而不是服务器上。在上述两种情况下,将Http
服务放在组件中是多余的。
所以我对这些组件的想法如下:
- 创建一个父组件并附加所有 CRUD 子组件(例如
ResourceCreate
,,ResourceList
)。 - 与其
Http
用于提交或接收数据,不如让父组件向 CRUD 子组件传递数据Input()s
或监听事件。Output()
例如,让父组件Http
请求获取资源列表,然后将该列表传递给ResourcetList
组件。另一个示例可能是让组件与资源描述一起ResourceCreate
发出事件。submit
该事件将被父组件捕获,然后父组件将其提交给服务器。
通过使用这种方法,CRUD 组件对资源存储一无所知。因此,如果我们的资源位于本地或文件中,我们唯一需要更改的是父组件,而不是 CRUD 组件本身。这使得 CRUD 组件更具可重用性。
我试图了解这种方法是否存在缺点。为什么我在互联网上找到的所有 CRUD 示例都没有使用这种方法,而是将Http
服务嵌入到 CRUD 组件中?有任何想法吗?
提前致谢。