W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
Angular 應(yīng)用是模塊化的,它擁有自己的模塊化系統(tǒng),稱作 NgModule。 一個 NgModule 就是一個容器,用于存放一些內(nèi)聚的代碼塊,這些代碼塊專注于某個應(yīng)用領(lǐng)域、某個工作流或一組緊密相關(guān)的功能。 它可以包含一些組件、服務(wù)提供者或其它代碼文件,其作用域由包含它們的 NgModule 定義。 它還可以導(dǎo)入一些由其它模塊中導(dǎo)出的功能,并導(dǎo)出一些指定的功能供其它 NgModule 使用。
每個 Angular 應(yīng)用都至少有一個 NgModule 類,也就是根模塊,它習(xí)慣上命名為 AppModule,并位于一個名叫 app.module.ts 的文件中。引導(dǎo)這個根模塊就可以啟動你的應(yīng)用。
雖然小型的應(yīng)用可能只有一個 NgModule,不過大多數(shù)應(yīng)用都會有很多特性模塊。應(yīng)用的根模塊之所以叫根模塊,是因?yàn)樗梢园我馍疃鹊膶哟位幽K。
NgModule 是一個帶有 @NgModule() 裝飾器的類。@NgModule() 裝飾器是一個函數(shù),它接受一個元數(shù)據(jù)對象,該對象的屬性用來描述這個模塊。其中最重要的屬性如下。
下面展示一個簡單的根 NgModule 定義(Bath: "src/app/app.module.ts" ):
import { NgModule } form `@angular/core`;
import { BrowserModule } form `@angular/platform-browser`;
@NgModule({
imports: [ BrowserModule ],
providers: [ Logger ],
declarations: [ AppComponent ],
exprots: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
注:
- 把 AppComponent 放到 exports 中是為了演示導(dǎo)出的語法,這在本例子中實(shí)際上是沒必要的。
- 根模塊沒有任何理由導(dǎo)出任何東西,因?yàn)槠渌K永遠(yuǎn)不需要導(dǎo)入根模塊。
注:
- 視圖的這種層次結(jié)構(gòu)是 Angular 在 DOM 和應(yīng)用數(shù)據(jù)中檢測與響應(yīng)變更時的關(guān)鍵因素。
NgModule 系統(tǒng)與 JavaScript(ES2015)用來管理 JavaScript 對象的模塊系統(tǒng)不同,而且也沒有直接關(guān)聯(lián)。 這兩種模塊系統(tǒng)不同但互補(bǔ)。你可以使用它們來共同編寫你的應(yīng)用。
JavaScript 中,每個文件是一個模塊,文件中定義的所有對象都從屬于那個模塊。 通過 export 關(guān)鍵字,模塊可以把它的某些對象聲明為公共的。 其它 JavaScript 模塊可以使用import 語句來訪問這些公共對象。
import { NgModule } form '@angular/core';
import { AppComponent } form './app.component';
export class AppModule { }
Angular 會作為一組 JavaScript 模塊進(jìn)行加載,你可以把它們看成庫模塊。每個 Angular 庫的名稱都帶有 @angular 前綴。 使用 npm 包管理器安裝 Angular 的庫,并使用 JavaScript 的 import 語句導(dǎo)入其中的各個部分。
@angular/core
庫中導(dǎo)入 Angular 的 Component 裝飾器:import { Component } from '@angular/core';
platform-browser
庫中導(dǎo)入了 BrowserModule
這個 NgModule。import { BrowserModule } from '@angular/platform-browser';
inports: [ BrowserModule ],
通過這種方式,你可以同時使用 Angular 和 JavaScript 的這兩種模塊系統(tǒng)。 雖然這兩種模塊系統(tǒng)容易混淆(它們共享了同樣的詞匯 import
和 export
),不過只要多用用你就會熟悉它們各自的語境了。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: