} } 3、NgModule API 》静态的:declarations:编译器配置,告诉编译器指令的选择器以及决定该指令应用到模版中的什么位置 》动态的:providers:注入器配置,依赖服务的提供者 》组合/分组:imports\exports,把多个NgModule放在一起,并使其可用
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放在一起,并使其可用
} } 3、NgModule API 》静态的:declarations:编译器配置,告诉编译器指令的选择器以及决定该指令应用到模版中的什么位置 》动态的:providers:注入器配置,依赖服务的提供者 》组合/分组:imports\exports,把多个NgModule放在一起,并使其可用