Angular之组件与服务功能的划分

Posted by Shen Chaoran on November 30, 2017

为什么要把逻辑写到服务中

如果组件只负责把视图模型对应的数据渲染到模板中,那么这个组件就会显得非常清晰明了。 相反,如果把http请求、数据解析的逻辑也放在组件中,组件就难以让人看懂。

如何设计服务的成员变量和方法

组件只是一个视图容器,渲染的是当前选中对象的对应数据。这时有两种通常的情况:

  • 当前组件属于主从结构,视图在渲染时是从一个view model数组中选择一个进行渲染的。所以一般服务中可以放一个字典对象,用于保存当前已加载过的视图状态。字典的键名是guid。这样就便于状态的恢复。但是有一点需要注意的是,对于同一个模块的多个组件可重用同一个组件时,要分别注入,这样他们就会分开维护不同的内存实例。
  • 组件与其他组件没有关联,只是把数据渲染上去。