組件:指的是單一的功能組件,如視頻組件(VideoSDK)、支付組件(PaySDK)、路由組件(Router)等。每個(gè)組件都能單獨(dú)抽出來(lái)制作成SDK。
組件化開(kāi)發(fā)的好處:
- 組件化框架可以使模塊單獨(dú)編譯調(diào)試,可以有效地減少編譯的時(shí)間,從而提高并行開(kāi)發(fā)效率。
- 提供給各個(gè)業(yè)務(wù)線使用,減少重復(fù)開(kāi)發(fā)和維護(hù)工作量。代碼簡(jiǎn)潔,冗余量少,維護(hù)方便,易擴(kuò)展新功能。
- 每個(gè)組件有自己獨(dú)立的版本,可以獨(dú)立編譯、測(cè)試、打包和部署。
- 避免模塊之間的交叉依賴,做到低耦合、高內(nèi)聚。
- 引用的第三方庫(kù)代碼統(tǒng)一管理,避免版本統(tǒng)一,減少引入冗余庫(kù)。
- 定制項(xiàng)目可按需加載,組件之間可以靈活組建,快速生成不同類(lèi)型的定制產(chǎn)品。
組件化的缺點(diǎn)在于舊項(xiàng)目重新適配組件化的開(kāi)發(fā)需要相應(yīng)的人力及時(shí)間成本。組件化的目的是為了代碼的重用和業(yè)務(wù)解耦。
我們用一個(gè)非?;A(chǔ)的組件化架構(gòu)圖來(lái)解釋組件化基礎(chǔ),如下圖所示

組件化架構(gòu)圖
上面的架構(gòu)圖從上到下分為應(yīng)用層、組件層和基礎(chǔ)層。
(1)基礎(chǔ)層包括一些基礎(chǔ)庫(kù)和對(duì)基礎(chǔ)庫(kù)的封裝,包括圖片加載、網(wǎng)絡(luò)加載、數(shù)據(jù)存儲(chǔ)等。
(2)組件層包含一些簡(jiǎn)單的業(yè)務(wù),比如登錄、數(shù)據(jù)觀看、圖片瀏覽等。
(3)應(yīng)用層用于統(tǒng)籌全部組件,并輸出生成App。