Angular2:数据层的最佳实践

Angular2: Best Practice for Data Layer

我是 Angular2 的新手,正在边做边学。现在我已经成功地构建了一个具有父组件、几个子组件和数据库服务的多视图。现在我将转向使用各自的父子组件实现其他视图。

该应用程序应该使用可以在其他组件中 added/updated/deleted 的相同数据集,因此我正在考虑拥有一个单独的数据层,该数据层可以被该应用程序的所有组件直接查询。更重要的是——我需要相同的服务实例,这样中间数据随处可用,同时避免不必要的数据库访问。在 Angular2 中定义和使用这样的 class 的最佳方法是什么?

更新问题: 那么现在,当我可以在整个应用程序中直接访问同一数据层实例的变量时,处理组件内变量的最佳方法是什么?

a) 我是否应该使用局部组件变量,它们是相同数据层变量的副本(因此显式加载、获取和设置它们),如

this.locations = this.datalayer.locations;
this.selectedLocation;

updateLocation(id) {
  this.selectedLocation = id;
  this.datalayer.setSelectedLocation(id);
}

getSelectedLocation() {
   return this.selectedLocation;
}

b) 我应该专门处理数据层变量,遍历它们,从组件中获取和设置它们吗?

updateLocation(id) {
   this.datalayer.selectedLocation = id;
}

getSelectedLocation() {
   return this.datalayer.selectedLocation;
}

或者也许有选项 c?

我假设您需要一种服务,该服务可供所有组件使用,目的是与数据进行交互。

您还需要一个单例服务。

解决方案是创建服务并在应用级别提供它。

查看更多: