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