如何更好的获取组件中的数据?

How to get data in component better?

在组件内部使用服务:

ngOnInit() {
  this.layer = this.layerService.getObject(semantic);
}

或使用 @Input() 并从父级传递数据:

@Input() layers: any[] = [];

组件是否应该控制 DOM,例如 show/hide DOM 元素,或者一切都应该在服务中?

那里有很多数据,我对使用大量 Inputs() 感到困惑

服务应处理应用程序的所有逻辑控制。该组件应该是一个可重用的元素,用于 show/manipulate DOM。在这种情况下,你所做的是正确的。服务正在传递数据并通过组件,您正在操纵它们以在 dom 上显示。

另一种方法是使用 get 属性 获取 layerService.getObject(semantic); 以便每次服务更改其逻辑时,组件也会更新。

public layers(): any[] {
  return this.layerService.getObject(semantic);
}