W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
許多應(yīng)用都需要解決一些同樣的常見問題,比如提供統(tǒng)一的用戶界面、渲染數(shù)據(jù),以及允許數(shù)據(jù)輸入。開發(fā)人員可以為特定的領(lǐng)域創(chuàng)建一些通用解決方案,以便在不同的應(yīng)用中重復(fù)使用。像這樣的解決方案就可以構(gòu)建成 Angular 庫,這些庫可以作為 npm 包進(jìn)行發(fā)布和共享。
Angular 庫是一個 Angular 項目,它與應(yīng)用的不同之處在于它本身是不能運(yùn)行的。必須在某個應(yīng)用中導(dǎo)入庫并使用它。
這些庫擴(kuò)展了 Angular 的基本功能。比如,要向應(yīng)用添加響應(yīng)式表單,請使用 ?ng add @angular/forms
? 添加該庫的 npm 包,再從應(yīng)用代碼中,從 ?@angular/forms
? 庫中導(dǎo)入 ?ReactiveFormsModule
?。同樣,把 ?Service Worker
? 庫添加到 Angular 應(yīng)用中是將應(yīng)用轉(zhuǎn)換為漸進(jìn)式 Web 應(yīng)用程序(PWA)的步驟之一。Angular Material 是一個大型通用庫的典范,它提供了一些復(fù)雜、可復(fù)用,兼具高度適應(yīng)性的 UI 組件。
任何一位應(yīng)用開發(fā)者都可以使用這樣或那樣的庫,它們都已經(jīng)由 Angular 團(tuán)隊或第三方發(fā)布為 npm 包。
如果已經(jīng)開發(fā)出了適合復(fù)用的功能,你就可以創(chuàng)建自己的庫。這些庫可以在你的工作區(qū)中本地使用,也可以把它們發(fā)布成 npm 包,共享給其它項目或其它 Angular 開發(fā)者。這些包可以發(fā)布到 npm 服務(wù)器、一個私有的 npm 企業(yè)版服務(wù)器,或一個支持 npm 包的私有包管理系統(tǒng)。
是否把一些功能打包成庫是一種架構(gòu)決策,類似于決定一個功能應(yīng)該做成組件還是服務(wù),或決定一個組件的范圍該有多大。
把功能打包成庫會強(qiáng)迫庫中的工件與應(yīng)用的業(yè)務(wù)邏輯分離。這有助于避免各種不良實踐或架構(gòu)失誤,這些失誤會導(dǎo)致將來很難解耦和復(fù)用代碼。
把代碼放到一個單獨(dú)的庫中比簡單地把所有內(nèi)容都放在一個應(yīng)用中要復(fù)雜得多。它需要更多的時間投入,并且需要管理、維護(hù)和更新這個庫。不過,當(dāng)把該庫用在多個應(yīng)用中時,這種復(fù)雜性就會得到回報。
注意:
這里所說的庫是為了供 Angular 應(yīng)用使用的。 如果想把 Angular 的功能添加到非 Angular 應(yīng)用中,可以使用 Angular 自定義元素。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: