我对Angular的世界很新.CommonModulevs 之间有什么区别BrowserModule?为什么一个应该优先于另一个?
Saj*_*ran 19
来自文档
BrowserModule提供了启动和运行浏览器应用程序所必需的服务.
BrowserModule还从@ angular/common重新导出CommonModule,这意味着AppModule模块中的组件也可以访问每个应用程序需要的Angular指令,例如NgIf和NgFor.
而
CommonModule(角度模板的所有基础:绑定,*ngIf,*ngFor ...),第一个应用程序模块除外,因为它已经是BrowserModule的一部分
还读这个.
ANe*_*own 18
您需要了解的是,使用Angular创建模块化应用程序,并且有两种类型的模块。一个是根模块,另一个是功能模块。
CommonModule渲染相同的材质,但也具有用于渲染的材质。CommonModule功能模块和BrowserModule根模块的原因。根应用程序模块AppModule导入BrowserModule,以便它具有启动和运行浏览器应用程序必不可少的所有服务。
AppModule中的组件还需要访问Angular伪指令(Arrtibute伪指令,结构伪指令),例如* ngIf,* ngFor和* ngSwitch等。这些伪指令可在CommonModule中使用,并由BrowserModule自动导出。这就是为什么我们可以访问AppModule中定义的组件中的指令的原因。
并且根据文档
只有根应用程序模块AppModule才应导入BrowserModule,所有其他功能模块均应导入CommonModule,因为我们仅需要功能模块中的Angular指令,而不需要启动应用程序所需的服务(RootModule中已提供了这些服务)。
根据此:
对于组件,管道和指令,每个功能模块都应导入其自己的依赖项,而不管是否在根模块或任何其他功能模块中导入了相同的依赖项。