它们在不同的地方声明(声明和提供者)。我知道服务有 @Injectable() 被注入(inject)到使用该服务的组件的构造函数中。但为什么一定要这样呢?为什么我们不能只在一个地方申报?哪些功能一个可以做到而另一个不能?
最佳答案
组件
它基本上是一个带有装饰器 @Component 的类,它告诉 Angular 该类是一个组件。
它们总是与 HTML 模板和一些 CSS 相关联。
当 html 的一部分重复使用类似的功能时,最好将其放入组件中。可以在需要相同功能的任何地方调用此组件。
服务
它们是整个应用程序中一些常用功能的中央单元。
它们是具有函数和成员的简单类。
在以下情况下使用 - 存在重复代码,访问/存储数据。
与@Component 和@Directive 不同,服务不存在装饰器。 @Injectable 仅在组件、指令或其他服务需要使用一项服务时使用。
关于angular - Angular 2+ 中的服务和组件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46105686/