首頁  >  文章  >  web前端  >  淺析Angular中什麼是ngModule

淺析Angular中什麼是ngModule

青灯夜游
青灯夜游轉載
2021-09-16 10:21:572366瀏覽

什麼是ngModule?這篇文章帶給大家簡單了解一下angular語法,介紹一下Angular中的ngModule,希望對大家有幫助!

淺析Angular中什麼是ngModule

作為Angular10教程,在我的理解中,angular相較於VUE,它的模組化做得更好,這樣使程式碼結構顯得更清晰。所以本節,我們將簡單介紹下angular語法,對ngModule的理解。 【相關教學推薦:《angular教學》】

首先,什麼是angular module(ngModule)?

我的理解:其實就是被@NgModule所裝飾的普通的類,沒有什麼特別的。

那麼問題來了,什麼​​又是@NgModule呢?

先來看看src/app/app.module.ts裡預設程式碼:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
// @NgModule(元数据)
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { } // 模块名AppModule

@NgModule 取得一個元資料對象,它會告訴Angular 如何編譯和啟動本應用。 (元資料不只上面這幾個配置項,但我們先說這幾個)

declarations數組

這個字本身的意思是“公告、宣告” ,這裡是本模組的依賴項。包括模組可能會依賴的一些元件指令管道。引入規則:

  • 要使用他們,就必須先引入。 \
  • 一個元件、指令或管道只能被一個模組引入(宣告)
  • 在declarations中的元件預設只能在目前模組中使用,要讓其他模組使用,必須exports出去

imports陣列

#imports陣列只會出現在@NgModule裝飾器中,一個模組想要正常工作,除了本身的依賴項( declarations),也可能需要其他模組導出的依賴項。只要是angular module,都可以導入imports數組中,例如自訂的模組(如:AppRoutingModule),第三方或ng內建的(@angular/**)都可以

#providers陣列

提供一系列服務

bootstrap陣列

#陣列中的每個元件,都作為元件樹的根(根元件),引用在啟動的過程中,會將這裡面的元件逐一解析並插入瀏覽器的DOM。

但通常情況下,裡面只會有一個AppComponent

那angular元件又是什麼樣子呢?

先看app元件,src/app/app.component.ts的預設程式碼:

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {// 组件名AppComponent
  title = 'hero';
}

可以看出,還是常規操作:引入–>配置–>導出

#selector:

顧名思義,就是個選擇器,一個能透過原生JS選取的選擇器而已(必填設定)。

templateUrl:

Angular 元件模板檔案的 URL。如果提供了它,就不要再用 template來提供內聯模板了(templateUrltemplate選項二選一,必填配置)。

styleUrls:

這也不難看出,就是引入一個或多個樣式路徑的配置(可選配置)

如果元件比較簡單,我們也可以不必單獨抽出頁面及樣式,@Component的設定項可以直接使用內聯形式:

import { Component } from '@angular/core';
@Component({
  selector: 'app-root',
  template: `
    <h1>{{title}}</h1>
    <h2>My favorite hero is: {{myHero}}</h2>
    `,
  styles: [`h1 { color: red }`]
})
export class AppComponent { // 组件名AppComponent
  title = &#39;Tour of Heroes&#39;;
  myHero = &#39;Windstorm&#39;;
}

到此為止,我們其實簡單講了下預設的這個App模組,至於裡面的app-routing.module.ts這個文件,咱們後面遇到了再說。

angular應用總的思路應該是這樣的:

#舉例說明,如果一個angular應用程式是一個公司,那麼AppModule就是這個公司。 AppComponent就是這個公司的一個工廠,公司可以有很多個工廠。 declearation數組裡面的元素就是組成工廠的一部分,例如生產車間、人員管理系統等。 imports數組就像是工廠請來的外援,專業性比較強。 providers數組就像是後勤部門,提供各種服務。

更多程式相關知識,請造訪:程式設計入門! !

以上是淺析Angular中什麼是ngModule的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除