什么是微前端?有什么好處?有哪一些方案?

微前端(Micro Frontends)

微前端是一種架構理念,借鑒了微服務的思想,將一個大型的前端應用拆分為多個獨立、自治的子應用,每個子應用可以由不同團隊、使用不同技術棧獨立開發和部署,最終聚合為一個整體產品。


🧱 生活化類比示例:樂高拼圖理解微前端

想象你在搭樂高城堡,原來需要所有人擠在一起拼同一塊,誰手抖碰倒一塊整個城堡都塌了。現在改用微前端,相當于:

  • 你把城堡分成城門、主樓、城墻幾個獨立部分

  • 小明團隊用木頭材料拼城門

  • 小紅團隊用塑料積木搭主樓

  • 你自己用 3D 打印做城墻

  • 最后像拼圖一樣組合起來,各部分還能隨時單獨升級改造

這樣既避免了不同團隊互相干擾,又能讓擅長不同材料的人各展所長,整個城堡還不會因為某部分出問題就全盤崩潰。這就是微前端最接地氣的理解方式。


🧐 什么是微前端?

微前端是一種將前端整體架構模塊化、服務化、解耦的方案。

核心思想:

  • 主應用負責公共框架、路由分發;

  • 子應用負責獨立業務模塊(如訂單管理、用戶中心);

  • 各子應用可獨立部署、獨立運行、獨立構建;

  • 技術棧可異構(如主應用用 Vue,子應用可用 React);


? 微前端的優勢

🎯 微前端適用場景

  • 大型平臺型項目(如企業管理后臺、電商后臺、SaaS 系統)

  • 多團隊協作開發的大型前端項目

  • 系統重構期,需“漸進式”升級的項目

  • 多業務線共存,每個團隊維護一個功能模塊

舉例:阿里巴巴的「統一運營平臺」使用微前端將多個 B 端應用模塊集成;騰訊企業微信多個業務線使用微前端統一接入主框架。


🛠? 主流微前端解決方案

🔧 示例:qiankun 快速接入

主應用(Vue)接入子應用(React)

// 主應用 main.js
import { registerMicroApps, start } from 'qiankun';registerMicroApps([{name: 'reactApp',entry: '//localhost:3001', // 子應用入口container: '#subapp-container',activeRule: '/react', // 路由規則}
]);start();

<!-- 主應用容器 index.html -->
<div id="subapp-container"></div>

子應用設置動態資源路徑(Webpack)

// 子應用 React - public-path.js
if (window.__POWERED_BY_QIANKUN__) {// 動態設置資源路徑__webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
}


?? 面臨的挑戰

?? 性能優化建議

1. 避免重復打包公共依賴

將 Vue/React 等設為 external,主應用通過 CDN 注入:

// vue.config.js 或 webpack.config.js
externals: {vue: 'Vue',react: 'React','react-dom': 'ReactDOM',
}

2. 預加載子應用資源

start({prefetch: true, // 開啟資源預加載
});

3. 緩存子應用

在主應用中緩存子應用實例,避免每次進入都重新 mount。

4. 異步加載子應用腳本

<script src="child-app.js" defer></script>

5. 全局事件通信 bus

// 主應用通信工具
import mitt from 'mitt';
export const eventBus = mitt();// 子應用中通信示例
eventBus.emit('login-success', userInfo);
eventBus.on('set-theme', (theme) => { ... });


? 總結

微前端為大型應用系統帶來了極大的靈活性和可擴展性,適合多團隊并行開發場景。但同時也帶來了通信、樣式、性能等方面的新挑戰。通過合理的架構設計與技術選型,可以最大化其優勢,構建現代化前端基礎設施。

文章轉載自:幼兒園技術家

原文鏈接:什么是微前端?有什么好處?有哪一些方案? - 幼兒園技術家 - 博客園

體驗地址:引邁 - JNPF快速開發平臺_低代碼開發平臺_零代碼開發平臺_流程設計器_表單引擎_工作流引擎_軟件架構

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76401.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76401.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76401.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【家政平臺開發(33)】庫存管理模塊開發實戰:從基礎搭建到智能管控

本【家政平臺開發】專欄聚焦家政平臺從 0 到 1 的全流程打造。從前期需求分析,剖析家政行業現狀、挖掘用戶需求與梳理功能要點,到系統設計階段的架構選型、數據庫構建,再到開發階段各模塊逐一實現。涵蓋移動與 PC 端設計、接口開發及性能優化,測試階段多維度保障平臺質量,…

Mysql個人筆記

Mysql個人筆記 sql基礎書寫規則和種類種類書寫規則注釋規則啟動 DDL數據類型數據庫的操作useshowcreatedrop 表的操作useshowcreate創建表復制表 dropalter Mysql的存儲引擎 DMLselectselect語句like&#xff08;謂詞&#xff09;where聚合函數&#xff1a;關于nullgroup byexi…

【重裝系統】大白菜自制U盤裝機,備份C盤數據,解決電腦啟動黑屏/藍屏

1. 準備 U 盤 U 盤容量至少 8G&#xff0c;備份 U 盤的數據&#xff08;后期會格式化&#xff09; 2. 從微軟官網下載操作系統鏡像 https://www.microsoft.com/zh-cn/software-download/windows11 3. 下載安裝大白菜 https://www.alipan.com/s/33RVnKayUfY 4. 插入 U 盤&#…

各類神經網絡學習:(十)注意力機制(第2/4集),pytorch 中的多維注意力機制、自注意力機制、掩碼自注意力機制、多頭注意力機制

上一篇下一篇注意力機制&#xff08;第1/4集&#xff09;待編寫 一、pytorch 中的多維注意力機制&#xff1a; 在 N L P NLP NLP 領域內&#xff0c;上述三個參數都是 向量 &#xff0c; 在 p y t o r c h pytorch pytorch 中參數向量會組成 矩陣 &#xff0c;方便代碼編寫。…

uni-app初學

文章目錄 1. pages.json 頁面路由2. 圖標3. 全局 CSS4. 首頁4.1 整體框架4.2 完整代碼4.3 輪播圖 swiper4.3.1 image 4.4 公告4.4.1 uni-icons 4.5 分類 uni-row、uni-col4.6 商品列表 小程序開發網址&#xff1a; 注冊小程序賬號 微信開發者工具下載 uniapp 官網 HbuilderX 下…

VBA將Word文檔內容逐行寫入Excel

如果你需要將Word文檔的內容導入Excel工作表來進行數據加工&#xff0c;使用下面的代碼可以實現&#xff1a; Sub ImportWordToExcel()Dim wordApp As Word.ApplicationDim wordDoc As Word.DocumentDim excelSheet As WorksheetDim filePath As VariantDim i As LongDim para…

MySQL運行一段時間后磁盤出現100%讀寫

MySQL運行一段時間后磁盤出現100%讀寫的情況&#xff0c;可能是由多種原因導致的&#xff0c;以下是一些常見原因及解決方法&#xff1a; 可能的原因 1. 磁盤I/O壓力過大[^0^]&#xff1a;數據量過大&#xff0c;數據庫查詢和寫入操作消耗大量I/O資源。索引效率低&#xff0c…

【RabbitMQ】延遲隊列

1.概述 延遲隊列其實就是隊列里的消息是希望在指定時間到了以后或之前取出和處理&#xff0c;簡單來說&#xff0c;延時隊列就是用來存放需要在指定時間被處理的元素的隊列。 延時隊列的使用場景&#xff1a; 1.訂單在十分鐘之內未支付則自動取消 2.新創建的店鋪&#xff0c;…

Linux筆記之Ubuntu系統設置自動登錄tty1界面

Ubuntu22.04系統 編輯getty配置文件 vim /etc/systemd/system/gettytty1.service.d/override.conf如果該目錄或者文件不存在&#xff0c;進行創建。 在override.conf文件中進行編輯&#xff1a; [Service] ExecStart ExecStart-/sbin/agetty --autologin yourusername --no…

C++程序詩篇的靈動賦形:多態

文章目錄 1.什么是多態&#xff1f;2.多態的語法實現2.1 虛函數2.2 多態的構成2.3 虛函數的重寫2.3.1 協變2.3.2 析構函數的重寫 2.4 override 和 final 3.抽象類4.多態原理4.1 虛函數表4.2 多態原理實現4.3 動態綁定與靜態綁定 5.繼承和多態常見的面試問題希望讀者們多多三連支…

算法訓練之動態規劃(三)

???~~~~~~歡迎光臨知星小度博客空間~~~~~~??? ???零星地變得優秀~也能拼湊出星河~??? ???我們一起努力成為更好的自己~??? ???如果這一篇博客對你有幫助~別忘了點贊分享哦~??? ???如果有什么問題可以評論區留言或者私信我哦~??? ?????? 個…

$_GET變量

$_GET 是一個超級全局變量&#xff0c;在 PHP 中用于收集通過 URL 查詢字符串傳遞的參數。它是一個關聯數組&#xff0c;包含了所有通過 HTTP GET 方法發送到當前腳本的變量。 預定義的 $_GET 變量用于收集來自 method"get" 的表單中的值。 從帶有 GET 方法的表單發…

jQuery多庫共存

在現代Web開發中&#xff0c;項目往往需要集成多種JavaScript庫或框架來滿足不同的功能需求。然而&#xff0c;當多個庫同時使用時&#xff0c;可能會出現命名沖突、功能覆蓋等問題。幸運的是&#xff0c;jQuery提供了一些機制來確保其可以與其他庫和諧共存。本文將探討如何實現…

MySQL 中的聚簇索引和非聚簇索引有什么區別?

MySQL 中的聚簇索引和非聚簇索引有什么區別&#xff1f; 1. 從不同存儲引擎去考慮 在MySIAM存儲引擎中&#xff0c;索引和數據是分開存儲的&#xff0c;包括主鍵索引在內的所有索引都是“非聚簇”的&#xff0c;每個索引的葉子節點存儲的是數據記錄的物理地址&#xff08;指針…

Java從入門到“放棄”(精通)之旅——啟航①

&#x1f31f;Java從入門到“放棄 ”精通之旅&#x1f680; 今天我將要帶大家一起探索神奇的Java世界&#xff01;希望能幫助到同樣初學Java的你~ (??????)?? &#x1f525; Java是什么&#xff1f;為什么這么火&#xff1f; Java不僅僅是一門編程語言&#xff0c;更…

三相電為什么沒零線也能通電

要理解三相電為什么沒零線也能通電&#xff0c;就要從發電的原理說起 1、弧形磁鐵中加入電樞&#xff0c;旋轉切割磁感線會產生電流 隨著電樞旋轉的角度變化&#xff0c;電樞垂直切割磁感線 電樞垂直切割磁感線&#xff0c;此時會產生最大電壓 當轉到與磁感線平行時&#xf…

文件上傳做題記錄

1&#xff0c;[SWPUCTF 2021 新生賽]easyupload2.0 直接上傳php 再試一下phtml 用蟻劍連發現連不上 那就只要命令執行了 2&#xff0c;[SWPUCTF 2021 新生賽]easyupload1.0 當然&#xff0c;直接上傳一個php是不行的 phtml也不行&#xff0c;看下是不是前端驗證&#xff0c;…

【Pandas】pandas DataFrame head

Pandas2.2 DataFrame Indexing, iteration 方法描述DataFrame.head([n])用于返回 DataFrame 的前幾行 pandas.DataFrame.head pandas.DataFrame.head 是一個方法&#xff0c;用于返回 DataFrame 的前幾行。這個方法非常有用&#xff0c;特別是在需要快速查看 DataFrame 的前…

日語學習-日語知識點小記-構建基礎-JLPT-N4階段(1):承上啟下,繼續上路

日語學習-日語知識點小記-構建基礎-JLPT-N4階段(1):承上啟下,繼續上路 1、前言(1)情況說明(2)工程師的信仰2、知識點(1)普通形(ふつうけい)と思います(2)辭書形ことができます(3)Vたことがあります。(4)Vた とき & Vる とき3、單詞(1)日語單詞(2…

碼率自適應(ABR)相關論文閱讀簡報

標題&#xff1a;Quality Enhanced Multimedia Content Delivery for Mobile Cloud with Deep Reinforcement Learning 作者&#xff1a;Muhammad Saleem , Yasir Saleem, H. M. Shahzad Asif, and M. Saleem Mian 單位: 巴基斯坦拉合爾54890工程技術大學計算機科學與工程系 …