深入理解Angular模块
@NgModule
装饰器
Angular应用程序全部是由 模块化组成的
,即模块化开发(组件/指令/服务/管道/路由),与js模块化是不同的概念,但具有异曲同工之妙;
Angular 模块之间是隔离
的,不能直接互相通信,通过 服务和路由来进行通信
;
组件模板中使用的其它组件(表单组件/路由组件/公共组件/指令/管道等)必须在module中导入其依赖,只在根模块app.module.ts中导入无效( 服务除外
)。(在哪里使用,就在哪里导入
,如果当前组件需要被其它地方使用,那么还需要同时进行导出,在export数组中配置一下);
特殊的模块浏览器模块
:BroswerModule,由于浏览器模块只在项目启动时运行一次,所以只需要在根组件模块中导入即可。
公共的模块CommonModule
:所有的 Ng指令
(NgIf/NgFor/NgClass/NgStyle
/NgComponentOutlet等)和Angular 内置的管道
(AsyncPipe/UpperCasePipe等)都是封装在CommonModule模块中。
同一个组件/管道只能被一个Angular模块所管理,即在declarations声明数组中出现一次。