下面我們從幾個方面來看一下微前端到底是什么?
是什么:
微前端是由ThoughtWorks在2016年提出,即將一個完整的應用轉變為數個可以獨立存在並運行的子模塊並聚合到一起到應用
為什么:
為何我們要放棄之前的單頁面應用而投向微前端的懷抱呢?主要是由於以下幾個原因
- 應用隨時間發展愈發臃腫,協作開發困難
- 應用體積過大,導致打包時間過長
- 讓子模塊可以靈活組合,並且易於對不同客戶進行定制,並可以進行單獨售賣模塊
好處:
宏觀角度
- 可以獨立部署不同的服務
- 實現子應用間的隔離,即可以混用任何框架進行開發
- 實現自治團隊,具備獨立迭代和創新的能力,方便多團隊同時進行開發
- 對外提供靈活的應用售賣方式
微觀角度
- 優化代碼打包體積
- 可以快速對子應用進行開發迭代,並像拼積木一樣將不同對子應用拼接在一起
- 代碼庫更小,更內聚、可維護性更高
- 漸進地升級、更新甚至重寫部分前端功能成為了可能
不足:
- 需要在開發中運行許多不同的應用來測試完整的應用體驗
- 整個應用的版本控制變得復雜
- 多個子應用同時開發時需要頻繁切換子應用
- 每個團隊都有自己的技術選擇,瀏覽器最終可能需要下載很多框架和重復代碼,導致依賴項冗余,增加用戶的流量負擔
- 微前端的一些實現(特別是嵌入 iframe)可能會導致嚴重的可訪問性問題
圖示
是否選擇?
微前端並不是銀彈,是否選用微前端則要結合當前情景具體分析,當項目較小時並不需要使用微前端,而當我們開發大型項目並且需要較為獨立端多個團隊來協作開發時,選用微前端則會更好一些。