angular - Angular 2+ 中的服务和组件有什么区别?

标签 angular service dependency-injection components

它们在不同的地方声明(声明和提供者)。我知道服务有 @Injectable() 被注入(inject)到使用该服务的组件的构造函数中。但为什么一定要这样呢?为什么我们不能只在一个地方申报?哪些功能一个可以做到而另一个不能?

最佳答案

组件

它基本上是一个带有装饰器 @Component 的类,它告诉 Angular 该类是一个组件。

它们总是与 HTML 模板和一些 CSS 相关联。

当 html 的一部分重复使用类似的功能时,最好将其放入组件中。可以在需要相同功能的任何地方调用此组件。

服务

它们是整个应用程序中一些常用功能的中央单元。

它们是具有函数和成员的简单类。

在以下情况下使用 - 存在重复代码,访问/存储数据。

与@Component 和@Directive 不同,服务不存在装饰器。 @Injectable 仅在组件、指令或其他服务需要使用一项服务时使用。

关于angular - Angular 2+ 中的服务和组件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46105686/

相关文章:

安卓键盘记录器

Powershell:如何找出哪些正在运行的服务不是操作系统和非 MS 的一部分

java - XMPP 服务连接终止

c# - 如何使用或模拟 IWebJobsBuilder 对 Azure Function v2 进行集成测试?

java - Spring Framework Autowiring 空指针异常

angular - Angular 6 中未找到任何配置或已弃用 get/set

html - Angular Material Schematics 生成的代码

angular - 从Electron Angular项目运行Karma时出错

wpf - MVVM 和 StructureMap 使用

css - 如何随页面一起滚动 Angular Material 垫菜单弹出窗口?