什么是组件和模块?
设计上看,组件(带有@Component装饰器的类)强调重复调用,就像零件一样,一颗螺丝、螺丝帽分别是一个零件——组件化就好比:做一个网站,可以把一个个区域拆成多个组件,比如导航栏是一个组件、编辑区是一个组件、页脚是一个组件,可以尽情拆分,一个组件包含了html、css和js代码,可以简单理解为页面的一块,可以根据需要把它放在页面的任何部位,也可以和其他组件组成新的组件。每个组件对应一个工程目录,组件所需的各种资源都在这个目录下就近维护;
模块(带有@NgModule装饰器的类)强调职责,侧重功能的封装,隔离、组织复制的js代码,将它们封装成一个个具有特定功能的模块,每个模块都是一个独立的作用域,是可以独立运行的,这样也降低了块与块之间的耦合性。
NgModule 模块是Angular中的一个重要的点,Angular的基本构造NgModule。NgModule 会把相关的代码收集到一些功能集中,形成功能单元。在使用Angular CL 命令新建一个项目的时候,会给我们生成一个根模块,命名为 AppModule,根模块有一个根组件AppComponent,引导这个根模块就可以启动应用。
Angular 应用是模块化的,我们在开发中会根据其功能 作用 以及其特性,建立大大小小各种模块,从而构建其成为一个应用程序,任何模块都能包含任意数量的其它组件。