一、微前端
-
微前端架構
-
應用自治
-
單一職責
-
技術棧無關
-
-
爲什麼需要微前端
-
遺留系統遷移
-
後端解耦,前端聚合
-
熱鬧驅動開發
-
二、微前端的技術拆分方式
-
路由分發式:通過HTTP服務器的反向代理功能,將請求路由映射到對應的應用上
-
前端微服務化:在不同的框架之上設計通信和加載機制,以在一個頁面內加載對應的應用
-
微應用:通過軟件工程的方式,在部署構建環境中,把多個獨立的應用組合成一個單體應用
-
微件化:開發一個新的構建系統,將部分業務功能構建成一個獨立的chunk代碼,使用時只需要遠程加載即可
-
前端容器化:將iframe作爲容器來容納其它前端應用
-
應用組件化:藉助於Web Components技術,來構建跨框架的前端應用
三、微前端的業務劃分方式
-
按照業務拆分
-
按照權限拆分
-
按照變更的頻率拆分
-
按照組織結構拆分
-
跟隨後端微服務拆分
-
按照領域拆分
四、微前端的架構設計
-
組件與模式庫
-
樣式
-
組件級樣式
-
應用級樣式
-
系統級樣式
-
-
業務組件及共享庫
-
-
應用通信機制
-
同級通信
-
通過全局的自定義事件
-
通過共享Window
-
-
父子級通信
-
通過PostMessage在父子窗口之間進行通信
-
通過parent.window尋找到父窗口,再發出全局的自定義事件
-
當其他應用加載時,將消息發送給父窗口,由父窗口發出自定義事件
-
當其他應用未加載時,先將消息傳遞給父窗口,再由父窗口進行存儲,提供一個獲取通信的機制
-
-
-
數據共享機制
-
URI參數傳遞
-
使用LocalStorage共享數據
-
其他客戶端存儲,如IndexedDB、Web SQL等
-
服務端存儲客戶端狀態,可以採用JSON格式存儲
-
-
專用的構建系統
五、微前端的架構模式
-
基座模式:通過一個主應用來管理其他應用,設計難度小,方便實踐,但是通用度低
-
自組織模式:應用之間是平等的,不存在相互管理的模式,設計難度大,不方便實施,但是通用度高
六、微前端的設計理念
-
中心化:應用註冊表
-
標誌化應用
-
生命週期
-
加載應用
-
運行應用
-
卸載應用
-
-
高內聚,低耦合
七、“微”害架構
-
微架構
-
後端拆分
-
App拆分
-
前端拆分
-
-
架構的演進
-
快速實現想法
-
添加越來越多的功能,應用變得臃腫
-
添加新功能的難度越來越大,引出微服務架構
-
-
微架構帶來的問題
-
後端:微服務到應用
-
代碼架構
-
部署流程
-
-
客戶端
-
插件化
-
組件化
-
-
-
解決方式:可拆分式微架構
推薦閱讀
參考資料
-
《前端架構:從入門到微前端》