Angular'da @Injectable() Kullanımı

Angular'da @Injectable() Kullanımı

💡 原文约400字/词,阅读约需2分钟。
📝

内容提要

Angular 6及以上版本允许使用providedIn属性和@Injectable()装饰器在不将服务添加到providers部分的情况下使用服务。这是Angular依赖注入系统的一部分,控制着服务在整个应用程序或特定模块中的提供方式。providedIn: 'root'属性表示该服务在应用程序的根级别提供。这消除了将服务添加到app.module.ts文件的providers部分的需要。providedIn方法简化了代码,并允许在编译过程中删除未使用的服务。如果一个服务只需要在特定模块中提供,可以使用providedIn参数来指定模块。添加服务到providers部分的旧方法仍然有效,但是providedIn方法因其简单性和效率而更受推荐。

Q&A

Angular中如何使用@Injectable()装饰器和providedIn属性?

在Angular 6及以上版本中,可以使用@Injectable()装饰器和providedIn属性来定义服务,而无需将服务添加到providers部分。

providedIn: 'root'的作用是什么?

providedIn: 'root'表示该服务在应用程序的根级别提供,消除了将服务添加到app.module.ts文件的需要。

使用providedIn方法有什么优势?

使用providedIn方法可以简化代码,允许在编译过程中删除未使用的服务,并且可以指定服务的提供范围。

如果服务只需要在特定模块中提供,应该怎么做?

可以使用providedIn参数来指定模块,例如@Injectable({ providedIn: SomeModule })。

旧的服务提供方法仍然有效吗?

是的,旧的方法仍然有效,但providedIn方法因其简单性和效率而更受推荐。

什么是树摇(Tree Shaking)?

树摇是指在编译过程中,如果服务未被使用,Angular可以将其从代码中删除,从而减小包的大小。

🏷️

标签

➡️

继续阅读