小编典典

NgModule 中的声明、提供者和导入有什么区别?

all

我试图了解 Angular(有时称为 Angular2+),然后我遇到了@Module

  1. 进口

  2. 声明

  3. 提供者

遵循Angular 快速入门


阅读 118

收藏
2022-03-14

共1个答案

小编典典

角度概念

  • imports使当前模块中其他模块的导出声明可用
  • declarations是使当前模块中的指令(包括组件和管道)可用于当前模块中的其他指令。指令、组件或管道的选择器仅在声明或导入时才与 HTML 匹配。
  • providers是让 DI(依赖注入)知道服务和值。它们被添加到根范围,并被注入到将它们作为依赖项的其他服务或指令中。

一个特殊情况providers是延迟加载模块,它们有自己的子注入器。providers默认情况下,延迟加载的模块仅提供给这个延迟加载的模块(而不是整个应用程序,因为它与其他模块一起使用)。

有关模块的更多详细信息,另请参阅https://angular.io/docs/ts/latest/guide/ngmodule.html

  • exports使组件、指令和管道在将此模块添加到的模块中可用importsexports也可以用于重新导出CommonModule和FormsModule等模块,这通常在共享模块中完成。

  • entryComponents注册组件以进行离线编译,以便它们可以与ViewContainerRef.createComponent(). 路由器配置中使用的组件是隐式添加的。

TypeScript (ES2015) 导入

import ... from'foo/bar'可能解析为index.ts用于
TypeScript 导入。每当您在另一个打字稿文件中声明的打字稿文件中使用标识符时,您都需要这些。

Angular @NgModule() imports和 TypeScriptimport完全不同的概念

另请参阅jDriven - TypeScript 和 ES6
导入语法

它们中的大多数实际上是 TypeScript 也使用的纯 ECMAScript 2015 (ES6) 模块语法。

2022-03-14