Angular-模块

1、入口组件(即:NgModule装饰器中的entryComponents数组)

a、入口组件就是在angular中采用命令式加载的任意组件,即没有在模版中引用过的组件,可以用它来作为应用启动引导组件、路由定义时指定的组件

b、主要有:

》引导用的根组件

》路由定义中指定的组件

》具体开发中在组件类中动态加载的组件

c、在根模块的NgModule装饰器属性bootstrap中指定的组件、路由定义中指定的组件,angular会隐士的自动将其添加到NgModule装饰器属性entryComponents数组中

d、对于启动应用使用的模块引导方式除了在Ngmodule装饰器的属性bootStrap数组中采用声明式的引导,也可以通过在模块的ngDoBootstrap()方法中采用命令式的引导

e、入口组件的编译:Angular的编译器只对可以通过entryComponents数组找到或者是能够间接找到的组件进行编译,而那些没有用过的组件就会被摇树优化机制给优化掉

注意:在采用Ivy渲染引擎下已经弃用入口组件

2、检查模块是否重复导入

constructor(@Optional() @SkipSelf() parentModule?: OtherModule) {

if (parentModule) {

throw new Error(‘模块已经添加')

}

}

3、NgModule API

》静态的:declarations:编译器配置,告诉编译器指令的选择器以及决定该指令应用到模版中的什么位置

》动态的:providers:注入器配置,依赖服务的提供者

》组合/分组:imports\exports,把多个NgModule放在一起,并使其可用