Angular--Module的使用

Angular 是一個用html 和typescript 構建客戶端應用的平臺與框架
它將核心功能和可選功能作爲一組TypeScript 庫進行實現,你可以把它們導入到你的應用中。

1. 模塊Module

  1. Angular 應用的基本構造塊是NgModule, 它爲組件提供了編譯的上下文環境。
  2. Angular 應用就是由一組NgModule定義的。 NgModule 可以將其組件和一組相關代碼(如服務)關聯起來,形成功能單元。
  3. 一個Angular應用至少有一個用於啓動的根模塊(root module), 根模塊通常命名爲AppModule,並位於一個名叫 app.module.ts 的文件中。還會有很多特性模塊(feature module)
  1. NgModule 是由@NgModule() 裝飾器定義的類。
  2. NgModules 用於配置注入器和編譯器(the injector and the compiler),並幫你把那些相關的東西組織在一起。
  3. @NgModule() 裝飾器是一個函數,參數是一個元數據對象,元數據對象的屬性用於描述這個模塊。其中最重要的屬性如下:
  • declarations(可聲明對象表) ——屬於本 NgModule 的組件指令管道
  • exports(導出表) —— 用於其它模塊的組件模板中使用的聲明對象的子集(the subset of declarations)。
  • imports(導入表) —— 其他模塊,本NgModule聲明的組件需要使用它們的導出類。
  • providers —— 本模塊向全局服務中貢獻的那些服務的創建器。 這些服務能被本應用中的任何部分使用。(你也可以在組件級別指定服務提供商,這通常是首選方式。)
  • bootstrap —— 應用的主視圖,稱爲根組件。它是應用中所有其它視圖的宿主。只有根模塊才應該設置這個 bootstrap 屬性。
  1. @NgModule 的參數是一個元數據對象,用於描述如何編譯組件的模板,以及如何在運行時創建注入器。 它會標出該模塊自己的組件、指令和管道(declarations),通過 exports 屬性公開其中的一部分,以便外部組件使用它們。NgModule 還能把一些服務提供商添加到應用的依賴注入器中(provider)。

2.常用模塊NgModules

 
NgModuleImport it fromWhy you use it
BrowserModule @angular/platform-browser 當你想要在瀏覽器中運行app 時
CommonModule @angular/common 當你想要使用NgIf 和NgFor時
FormsModule @angular/forms 當要構建模板驅動表單時
ReactiveFormsModule @angular/forms 當要構建響應式表單時
RouterModule @angular/router 當要使用路由功能,並且你要用到RouterLink, forRoot() 和.forChild()時
HttpClientModule @angular/common/http 當要和服務器對話時

BrowserModule 導入了 CommonModule,它貢獻了很多通用的指令,比如 ngIfngFor。 另外,BrowserModule 重新導出了 CommonModule,以便它所有的指令在任何導入了 BrowserModule 的模塊中都可以使用。
對於運行在瀏覽器中的應用來說,都必須在根模塊 AppModule 中導入 BrowserModule ,因爲它提供了啓動和運行瀏覽器應用時某些必須的服務。BrowserModule 的提供商是面向整個應用的,所以它只能在根模塊中使用,而不是特性模塊。 特性模塊只需要 CommonModule 中的常用指令,它們不需要重新安裝所有全應用級的服務。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章