怎么組織 Angular 項目?下面本篇文章整理分享5 個管理 Angular 項目的實用技巧,希望對大家有所幫助!
如何快速入門VUE3.0:進入學習
伴隨著新功能的發(fā)布,Web apps
的體積越發(fā)大。在公司 DevOps 的過程中,這種發(fā)布變更每天都發(fā)生。【相關教程推薦:《angular教程》】
在如此高速的發(fā)布周期中,代碼很快會變得笨拙。特別是基于 JavaScript
開發(fā)的項目,比如 NextJS 或者 Angular。
下面是我們在管理 Angular
項目中 5 個最好的實踐,以達到最大的可讀性,可維護性和可擴展性。
1. 準守單一職責原則
很多單應用程序核心是具有臃腫類的代碼庫。從本質(zhì)上講,這些臃腫的程序很難維護。從某種意義上講,他們很脆弱,脆弱到更改一行代碼可能對到整個程序產(chǎn)生災難的影響。single responsibility principle 能阻止這些問題。
單一職責原則意味著組件有且僅有一個功能。
使用這種方法構建應用程序會產(chǎn)生一個模塊化框架,其中應用程序是通過這些代碼塊串聯(lián)在一塊的。
使用這種方法能夠讓程序更易讀和更好維護。也能夠在應用中很好定位指定的功能。
為了確保你的代碼能夠滿足這種要求,你可以問自己一個問題:這代碼是干什么的?
如果自己的回答包含 and
這個關鍵字,那么你需要將你的代碼重構為單一職責的代碼。
構建 Angular
應用程序并對其擴展是一種持續(xù)性的練習。在不斷的練習中,使用單一職責原則組織你的項目,將使你的應用程序干凈,可讀和可維護。
2. 綁定代碼到模塊中
Angular
中的 modules 是單一原則的實施。在 Angular
中,每一個模塊代表一個分離的和獨立的功能。
Angular
中提供了幾種類型模塊去指定如何對它們進行邏輯分組或組織。
Core
Core
模塊是一個 NgModule
,用來實例化應用并加載全局使用的核心功能。
所以,任何單例服務都應該在核心模塊中實現(xiàn)。頁頭,頁腳或者導航欄都是這種類型的模塊。
每個應用程序有且只有一個實例的所有服務(單例服務)都應該在核心模塊實現(xiàn)。例如鑒權服務或者用戶服務。
Feature
功能模塊代表構建應用程序功能的代碼。比如,在一個線上購物的應用中,我們會有將商品添加到購物車的功能和用于付款的單獨模塊。
Shared
共享模塊由可以被組合以創(chuàng)建新功能的模塊組成。比如,搜索函數(shù)在平臺中可以被用于多個功能。
以這種方式構建代碼使事情更加容易定位并增加代碼可重用性的機會。
3. 組織 SCSS 文件
如果不遵循通用結構,樣式文件很快就會變得雜亂無章。一般最佳實踐的模式 7-1
模式,該模式使用 7
個文件夾和 1
個文件,如下所示:
-
App – 項目的主要文件夾
-
Abstract – 抽象部分,包含所有變量、混合和類似的組件
-
Core – 包含整個站點的排版、重置和樣板代碼
-
Components – 包含要為一個網(wǎng)站創(chuàng)建的所有組件的樣式,例如按鈕、選項卡和模式
-
Layout – 包含定義站點布局所需要的文件,例如頁頭和頁腳
-
Pages – 包含每個特定頁面樣式
-
Vendors – 這個可選文件夾適合項目的使用的引導框架,比如
bootstrap
為包含該特定文件夾所有代入的在每個文件夾中新建一個 all.scss
文件。
4. 將私有服務放到組件中
許多服務都被設計全局范圍內(nèi)運行。然后,在某些情況下,一個組件需要一個服務。傳統(tǒng)的編碼組件實踐推薦單一責任原則。
在這種方法下,服務和組件被編寫為單獨的項目。
但是,考慮下入鍋刪除這些服務的組件會發(fā)生什么?你最終得到的是死代碼,只會使得倉庫變得更加混亂。在這種情況下,最佳實踐是將服務放在組件內(nèi)部。
這樣,維護組件和服務就更加容易了。
5. 簡化導入的 Angular 最佳實踐
嵌套文件結構本質(zhì)上比將所有代碼文件都放在一個目錄中的平面文件系統(tǒng)更加容易導航。
然而,隨著項目的方法,項目的文件結構可能變得相當復雜。雖然這使得定位代碼變得更加容易,但是當它在編寫導入語句時提出了挑戰(zhàn)。
當一個目錄結構開始超過三個或者四個級別的時候, import
語句就會變得非常長并且難以閱讀。
解決這個問題的,我們可以在 tsconfig.json 文件中配置路徑的別名。在這個文件中,有個名為 compilerOptions
的數(shù)組。這個是你在應用程序中配置路徑別名。
當代碼編譯后,在該數(shù)組中定義的路徑別名會替換成真實的路徑。每個路徑的值是一個包含實際路徑和別名的鍵值對對象。
構建 Angular
應用程序并對其進行擴展是一項持續(xù)的練習。
本文為譯文,采用意譯的形式。
原文地址:https://www.adservio.fr/post/how-to-organize-angular-project-top-5-tips