Angular9 常用模塊

2020-07-02 16:33 更新

Angular 應(yīng)用至少需要一個(gè)充當(dāng)根模塊使用的模塊。 如果你要把某些特性添加到應(yīng)用中,可以通過(guò)添加模塊來(lái)實(shí)現(xiàn)。 下列是一些常用的 Angular 模塊,其中帶有一些其內(nèi)容物的例子:

NgModule 導(dǎo)入自 為何使用
BrowserModule @angular/platform-browser 當(dāng)你想要在瀏覽器中運(yùn)行應(yīng)用時(shí)
CommonModule @angular/common 當(dāng)你想要使用 NgIf 和 NgFor 時(shí)
FormsModule @angular/forms 當(dāng)要構(gòu)建模板驅(qū)動(dòng)表單時(shí)(它包含 NgModel )
ReactiveFormsModule @angular/forms 當(dāng)要構(gòu)建響應(yīng)式表單時(shí)
RouterModule @angular/router 要使用路由功能,并且你要用到 RouterLink,.forRoot() 和 .forChild() 時(shí)
HttpClientModule @angular/common/http 當(dāng)你要和服務(wù)器對(duì)話時(shí)

導(dǎo)入模塊

當(dāng)你使用這些 Angular 模塊時(shí),在 AppModule(或適當(dāng)?shù)奶匦阅K)中導(dǎo)入它們,并把它們列在當(dāng)前 @NgModuleimports 數(shù)組中。比如,在 Angular CLI 生成的基本應(yīng)用中,BrowserModule 會(huì)在 "app.module.ts" 中 AppModule 的頂部最先導(dǎo)入。

/* import modules so that AppModule can access them */
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';


import { AppComponent } from './app.component';


@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [ /* add modules here so Angular knows to use them */
    BrowserModule,
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

文件頂部的這些導(dǎo)入是 JavaScript 的導(dǎo)入語(yǔ)句,而 @NgModule 中的 imports 數(shù)組則是 Angular 特有的。

BrowserModule 和 CommonModule

BrowserModule 導(dǎo)入了 CommonModule,它貢獻(xiàn)了很多通用的指令,比如 ngIfngFor。 另外,BrowserModule 重新導(dǎo)出了 CommonModule,以便它所有的指令在任何導(dǎo)入了 BrowserModule 的模塊中都可以使用。

對(duì)于運(yùn)行在瀏覽器中的應(yīng)用來(lái)說(shuō),都必須在根模塊中 AppModule 導(dǎo)入 BrowserModule,因?yàn)樗峁┝藛?dòng)和運(yùn)行瀏覽器應(yīng)用時(shí)某些必須的服務(wù)。BrowserModule 的提供者是面向整個(gè)應(yīng)用的,所以它只能在根模塊中使用,而不是特性模塊。 特性模塊只需要 CommonModule 中的常用指令,它們不需要重新安裝所有全應(yīng)用級(jí)的服務(wù)。

如果你把 BrowserModule 導(dǎo)入了惰性加載的特性模塊中,Angular 就會(huì)返回一個(gè)錯(cuò)誤,并告訴你要改用 CommonModule

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)