为什么在 API 调用上使用 Angular 服务更好?

Sam*_*ter 1 service http angular

当对后端进行 HTTP 调用或 API 调用时,Angular 服务会做什么以及为什么使用它是有益的?

wen*_*jun 5

正如Angular 文档中所述,组件的用途如下:

理想情况下,组件的工作就是提供用户体验,仅此而已。组件应该提供数据绑定的属性和方法,以便在视图(由模板呈现)和应用程序逻辑(通常包括模型的一些概念)之间进行协调。

下一段解释了服务的目的:

组件可以将某些任务委托给服务,例如从服务器获取数据、验证用户输入或直接记录到控制台。通过在可注入服务类中定义此类处理任务,您可以使这些任务可供任何组件使用。您还可以根据不同情况注入不同的同类服务提供商,使您的应用程序更具适应性。

从软件工程的角度来看,这符合单例模式。在 Angular 中,定义和创建服务的标准做法是在根级别提供它们,然后创建服务的共享实例,该实例可以注入到需要它的其他类/组件中。

在您的服务文件中,您可能会注意到@Injectable()装饰器,它可能看起来像这样:

@Injectable()
export class SampleService {

  // other things within your service

}
Run Code Online (Sandbox Code Playgroud)

这将该类表示为“服务”,它将告诉 Angular 将其作为依赖项注入到其他组件中。您可以在此处阅读有关依赖注入的更多信息。