为什么我们需要 angular 中的服务

Why do we need services in angular

所以从React.js过来后我开始学习angular。很多事情在我看来没有必要过于复杂,li 为什么我需要将组件导入文件和 angular 应用程序。 现在我想我想出了主要的想法,angular 是一个完整的包(或应用程序),它提供了比 React 多得多的功能,并且它的所有组件都需要被授予。

但我还是不明白为什么我们需要服务。我理解服务的想法和概念,我可以创建 "UserService" 包含所有用户调用并将其注入不同的组件。但是如果我把所有的功能都放到一个普通的js填充里导入到组件里,是不是一样?

我会澄清我的问题,在 Angular 应用程序中使用 Angular 服务而不是导出所有功能的常规 js 填充是否有任何优势或需要?

服务是单例的(具体来说,是向根注入器注册的服务)。

服务有用的一些原因:

  1. 将 HTTP 请求等逻辑与实际组件分开的最佳实践,这些组件应该只控制 UI 如何与数据交互。
  2. 注入器确保注入服务的每个组件都获得相同的实例,因此它允许跨组件共享数据等事情。
  3. 允许Dependency Injection

使用服务可以帮助您隔离控制器执行业务逻辑、通信和存储相关的事情,因为服务旨在用于业务逻辑或与服务器通信或存储使用。

使用这种方法,您仅将控制器用于视图管理、数据绑定、表单验证、用户交互等,并单独关注 Angular 应用程序的可测试性,这就是您可以编写单元的原因测试(如 Karma)更容易。

Controller 是一个构造函数,其工作方式类似于 class 和 Angular 每次创建视图时创建控制器的新实例,并在销毁视图时销毁控制器。控制器不适合在整个应用程序生命周期中保存应用程序数据。这就是为什么服务不应该直接在视图中使用,而是需要将它们注入到控制器中。服务不应操纵 DOM 个对象,HTML 和 CSS。