前言
這篇文章對于剛剛接觸組件化人員參考用盖喷,是我對于組件化的一些理解,有不對的地方還望大家提出批評。
什么是組件化
app的構(gòu)建看成是一個搭積木的過程包归,每個組件就是一個小積木,通過一個個積木你可以自由的組裝成功各種形狀(app或模塊)铅歼,所以組件化就是把App的功能拆分成一個一個組件的過程公壤。
為什么要組件化
- 當(dāng)業(yè)務(wù)需求量和團隊規(guī)模達(dá)到一定程度的產(chǎn)物换可,也是目前一個合理的app架構(gòu)的實踐。
- 業(yè)務(wù)耦合比較嚴(yán)重厦幅,不能很快響應(yīng)開發(fā)需求(本質(zhì))
- 多人開發(fā)
- 功能復(fù)用(多個app情況下比較明顯 )
- 專注業(yè)務(wù)
- 單獨開發(fā)測試锦担,(更易優(yōu)化)
- 統(tǒng)一交互,統(tǒng)一UI慨削,規(guī)范
什么時候不考慮組件化
- 創(chuàng)業(yè)公司正在高速版本迭代
- 項目簡單洞渔,功能單一
- 項目穩(wěn)定了并且后續(xù)改動很小,最低運營項目
- 對組件化缺少相應(yīng)的知識缚态,沒有充分的實踐
什么是組件
提供相對獨立磁椒,某類單一功能的代碼集合。
功能組件:組件化最基礎(chǔ)的組件玫芦,是業(yè)務(wù)組件的基石浆熔,可能依賴第三方庫或其他功能組件
業(yè)務(wù)組件:提供某個業(yè)務(wù)集合的組件,一定依賴功能組件或第三方庫
功能組件直接導(dǎo)入頭部文件使用
業(yè)務(wù)組件利用中間件解耦使用
組件化方式
說的是解決業(yè)務(wù)組件間強耦合的方式桥帆。
- 運行時医增,代表的就是CasaTaloyum提出的
target-action
方案,利用運行時方式提供組件通信服務(wù)老虫。 - 注冊代理叶骨,這個很多大公司有使用,阿里祈匙,蘑菇街也有很多相關(guān)的開源和方案忽刽,總的思路就是每個組件有唯一的標(biāo)識,啟動時注冊他們夺欲,通信時用url短鏈接去確定唯一的頁面和組件跪帝。
關(guān)于兩種方式網(wǎng)上有很多文章這里就不再贅述。
組件化一般步驟
- 合理的app架構(gòu)的設(shè)計些阅,分層
- 基礎(chǔ)的發(fā)布管理系統(tǒng)
- 團隊內(nèi)規(guī)范文檔
- 最基礎(chǔ)的工具組件伞剑,直接依賴系統(tǒng)API,通用的基礎(chǔ)功能
- 拆分功能組件市埋,找出app中通用的功能(網(wǎng)絡(luò)黎泣、緩存,音視頻處理)
- 拆分UI組件腰素,通用的UI控件(導(dǎo)航聘裁、特定的UI,彈出框登)
- 拆分業(yè)務(wù)組件弓千,業(yè)務(wù)組件里面也可以繼續(xù)拆分邏輯和UI組件
- 持續(xù)迭代和調(diào)整衡便,文檔沉淀,框架規(guī)范繼承