破境Angular(三)Angular构件之模块
一、知識點
Angular模塊核心知識點如下:
1.模塊的作用。
2.模塊各個元數據的含義和作用
3.模塊有哪些分類,分類原則
4.模塊的惰性加載機制
5.開發時如何對模塊進行規劃
二、模塊作用
首先,模塊作為一個容器,有封裝代碼的作用,組件、指令、管道、服務的根宿主均是模塊。
其次,一個模塊可以導入其他模塊,并導出其他模塊的組件、指令、管道和服務,這種導入、導出能力可以向后傳遞,使得后續模塊不必重復導入相同的模塊,例如:
1.假設模塊A已經導出本模塊的指令和服務,使得其他模塊可以使用
2.模塊B導入了模塊A,并導出模塊A的指令和服務
3.模塊C導入模塊B后則可以使用模塊A的指令和服務而不需要再次導入A
這種能力使得可以規劃一個share模塊來統一導出公共的通用構件,其他模塊只需要導入share模塊則可。
三、模塊元數據
模塊元數據如下:
1.@NgModule是一個裝飾器,聲明某個類是Angular模塊,看起來很像Java的注解,但實際有很大不同,前者用于在編譯期給編譯器編譯代碼,后者用于在運行期控制代碼邏輯。
2.declarations: 聲明屬于該模塊的組件、指令和管道
3.entryComponents:可以動態加載進視圖的組件列表,一般是根組件
4.providers:需要提供依賴注入的服務列表
5.imports: 要導入的其他模塊
6.exports: 導出的組件,指令,管道。只有先導出,其他模塊再導入本模塊后這些構件才能被其他模塊使用。
四、模塊分類
根據模塊的作用不同進行模塊分類有利于代碼維護,Angular模塊分為以下幾類:
1.特性模塊,完成特定的特性功能的模塊,例如訂單模塊,排課模塊
2.路由特性模塊,帶路由的特性模塊
3.路由模塊,專門實現路由功能的模塊
4.服務模塊,提供公共服務的模塊,如HTTP請求服務
5.UI模塊,用于封裝公共的UI組件,例如表格組件,穿梭框組件。
五、惰性加載
在開發過程中經常可見惰性加載的例子,如在數據量大時,樹的加載通常只加載一級節點數據,當有需要時才加載子節點數據。惰性加載的目的是縮短單次交互的時間,提升客戶體驗。為了避免將所有模塊代碼一次加載到客戶端,Angular支持模塊惰性加載,只有帶路由的特性模塊才能惰性加載。特性加載的實現如下:
六、模塊規劃
在開始編寫項目代碼前和項目開發過程中,應先做模塊規劃再編寫代碼,而不是整個項目只有一個特性模塊和一個路由模塊來完成所有事情。模塊規劃主要參考模塊分類以及單一職責原則:
1.先劃分好特性,再按照特性劃分特性模塊
2.每個特性的路由模塊獨立
3.拆分單獨的服務模塊,并根據服務的作用維度不同,繼續拆分和聚合
4.拆分獨立的UI組件模塊
5.劃分需要惰性加載和急性加載的模塊
.End
下期預告:【破境Angular(四)Angular構件之服務】
專題鏈接:
破境Angular(一)初識Angular
破境Angular(二)Angular構件之模塊
關注Java棧及其衍生技術,通過實戰經驗分享,傳播Java棧技術和提高Java棧開發效率。
總結
以上是生活随笔為你收集整理的破境Angular(三)Angular构件之模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 0909 编译原理
- 下一篇: 为应用程序池 ''DefaultAppP