- 什么是模块?
模块就是提供相对独立功能的一组代码
组成部分:组件、服务、指令、管道等
从某种角度说,它像一个小型的应用
- AppModule
Imports数组:导入本模块需要的依赖模块,注意是模块NgModule
exports数组:暴露给其它模块使用的组建、指令或管道等
providers数组:模块中需要使用的服务/注入
declarations数组: 模块拥有的组件、指令或管道(为了让自己模块相互认识)。注意每个组件/指令/管道只能在一个模块中声明。
bootstrap数组:通过引导根模块AppModule来启动的,引导过程还会创建bootstrap数据中列出的组件,并把他们逐个插入到浏览器的DOM中。
- 模块的坑
导入其它模块时,需要知道使用该模块的目的
- 如果是组件,需要在每个需要模块都进行导入
- 如果是服务,一般在根模块中导入一次即可
需要在每个需要的模块导入的
- CommonModule:提供绑定、ngIf和ngFor等基础指令,基本每个模块都需要它。
- FormsModule/ReactiveFormsModule:表单模块需要在每个需要的模块导入。
提供组件、指令或管道的模块
只在根模块导入一次的
- HttpClientModule/BrowserAnimationsModule/NoopAnimationsModule
- 只提供服务的模块
网友评论