背景
Angular 2 自從 rc5 版本以后,冒出來這個叫做 Module 的東西,而且不出不在。要全面掌握 Angular 2,了解這個 Module 是什么便是重要的一環。
Module
以下為 Angular 2 的官方定義:
Angular Module 能幫你把應用組織成多個緊密相關的功能塊。
Angular Module 是帶有 @NgModule 裝飾器函數的類。@NgModule
接收一個元數據對象,該對象告訴 Angular 如何編譯和運行模塊代碼。它標記出該模塊擁有的組件、指令和管道,并把他們的一部分公開出去,以便外部組件使用他們。它可以向應用的依賴注入器中添加服務提供商。
從哪兒來
Module 是 rc5 以后才出來的概念,在之前,應用下面直接就是組件。這樣會帶來兩個顯著的問題,一個是項目規模大了以后,應用根部的配置文件需要針對所有的組件、服務和指令等做大量的維護工作,應用配置文件 app.component.ts 文件會非常重且不好管理;第二個問題是不方便引用第三方庫,沒有合理的接口暴露方式。在這種情況下,Angular 引入了 Module 的概念。
到哪兒去
Angular 把之前相對于應用扁平化的組件、指令和管道根據特性打包成內聚的功能塊,每塊聚焦于一個特性分區、業務領域、工作流、或一組通用的工具。