微前端架構體系


微前端(Micro-Frontends)是一種類似於微服務的架構,它將微服務的理念應用於瀏覽器端,即將 Web 應用由單一的單體應用轉變為多個小型前端應用聚合為一的應用。各個前端應用還可以獨立運行、獨立開發、獨立部署。微前端不是單純的前端框架或者工具,而是一套架構體系。

1.可以把它理解成一個Iframe,就像這樣。。。


但是他不是一個iframe
為什么這么說,因為iframe有其局限性。

  • iframe 最大的特性就是提供了瀏覽器原生的硬隔離方案,不論是樣式隔離、js隔離這類問題統統都能被完美解決。但他的最大問題也在於他的隔離性無法被突破,導致應用間上下文無法被共享,隨之帶來的開發體驗、產品體驗的問題。
  • url 不同步。瀏覽器刷新 iframe url 狀態丟失、后退前進按鈕無法使用。
  • UI 不同步,DOM 結構不共享。想象一下屏幕右下角 1/4 的 iframe 里來一個帶遮罩層的彈框,同時我們要求這個彈框要瀏覽器居中顯示,還要瀏覽器 resize 時自動居中..
  • 全局上下文完全隔離,內存變量不共享。iframe 內外系統的通信、數據同步等需求,主應用的 cookie 要透傳到根域名都不同的子應用中實現免登效果。
  • 慢。每次子應用進入都是一次瀏覽器上下文重建、資源重新加載的過程。
    why not a iframe 傳送門

如果想繼續入坑的話,不妨了解一下

Qiankun (Single Spa) qiankun官方文檔傳送門
Webpack5 / Module Federation


這是小紅書B端ARK應用的設計理念,root是基座,layout整體布局

總結

  • 微前端並不能減少資源體積,反而會增加 Webpack 5 Module Federation 微前端可以提高 Ark 開發體驗

優點:

  • 獨立開發子應用 新的子應用體積小啟動快。 子應用可以使用新的特性

缺點:

  • 需要手動在 root 里增加配置 需要 appcenter 配置新的應用 需要 設置新的 路由解析
    如果沒有確切的需求,還是不用增加子應用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM