2023/09/29

認識Angular中的模組(NgModule)

文、意如老師

 

本篇文章可以學到:
一、認識Angular中的模組(NgModule)
二、建立新模組
三、建立元件並註冊到自己所建立的模組內
3-1、在app.component.html 加入 mf1的功能
3-2、在mypage1元件 使用 mf1元件


一、認識Angular中的模組(NgModule)


在我們先前的介紹中,元件預設都綁在AppModule模組中,隨著元件越來越多,如都放置在同一個模組中,恐怕會造成專案不好維護,因此我們需要將模組有系統的分類,先複習一下,開啟src\app\app.module.ts,可以看到之前所建立的元件,預設都綁在這裡。

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img1


在NgModule中帶有一個@NgModule()裝飾器的類別也是一個函式(function),當中有幾個重要參數。

 


基本參數有:declarations [ ]、exports [ ]、imports [ ]、provider [ ]、bootstrap [ ]。


declarations[ ]:


宣告畫面(View)需要相關的元件(component)、指令(directives)、管道(pipes)。如果要用到該元件的功能,就必須匯入 import 包含他的模組。 例如:

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img2

 


exports:[]


決定哪些功能要公開給外部使用。

 


imports:[]


引入會使用到的模組。

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img3

 


providers:[]


給某元件下使用

 


bootstrap:[AppComponent]:
 

根元件(root component)
只有根模組才需要設定這個 bootstrap 屬性

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img4

 


二、建立新模組


建立新模組指令為:ng generate module [name]
也可以使用縮寫指令 :ng g m [name]
例如建立一個myfns的模組(Module),指令:ng g m myfns
此時會自動在src/app下建立myfns/myfns.module.ts檔案


如果元件要使用到這個模組就必須將它註冊到該元件所屬的模組內。

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img5

 


三、建立元件並註冊到自己所建立的模組內


在路徑src/app/myfns模組下建立三個元件(mf1, mf2, mf3)


建立元件指令:
ng g c myfns/mf1
ng g c myfns/mf2
ng g c myfns/mf3

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img6

 


開啟 src/app/myfns/myfns.module.ts 可以看到剛剛所建立的三個元件都已自動被註冊到 myfns模組中了。

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img7

 


3-1、在app.component.html 中加入 mf1元件的功能


開啟路徑:app-routing.module.ts增加myfn1Component的路由規則,path 屬性設定為 myfn1。

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img8

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img9

 


接下來就可以在src/app/ app.component.html的樣板中插入一個mf1Component 的連結。

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img10

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img11

 


最後將mf1Component所屬的模組(myfnsModule)註冊到AppModule內。
路徑:src/app/app.module.ts

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img12

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img13

 


再重新執行 ng serve –open就可以正常運作了。

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img14

 


任務3-2:在mypage1元件中使用mf元件


首先開啟src/app/myfns/myfns.module.ts,接下來需要將mf1Component設定到 myfnsModule 的 exports 內。
例:

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img15

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img16

 


將mf1Component的tag <app-mf1></app-mf1>
加到路徑:src\app\mypage1\mypage1.component.html 中即可。

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img17

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img18
 

 

在src/app/app.component.html中加入 /p1 路徑
 

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img19

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img20

 

 

重啟專案:ng serve –open

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img21

 


最後加上<p></p>段落標籤樣式後,可以更清楚的看到此頁其實就是兩個元件。
開啟路徑:src/styles.css
輸入以下樣式:

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img22

 


完成檔如下:

 

[program-yiru-know-the-module-ngmodule-in-angular]for ai.rookiesavior lesson img23

 


我們已經了解了什麼是模組,也初步建立了模組,接下來就要開始介紹模板(template)語法,詳細介紹請參閱下一篇-認識Angular中的模板(Template)語法。


本文首圖圖片來源:Pexels

 

 

加入菜鳥救星學習會員,不定期獲得更多知識吧!點我註冊 / 登入

 

不同頻道,不同知識 !