微前端是什么?
微前端就是將不同的功能按照不同的維度拆分成多個子應(yīng)用。通過主應(yīng)用來加載這些子應(yīng)用。微前端的核心在于拆.拆完后在合!
它借鑒了微服務(wù)的架構(gòu)理念,核心在于將一個龐大的前端應(yīng)用拆分成多個獨(dú)立靈活的小型應(yīng)用,每個應(yīng)用都可以獨(dú)立開發(fā)、獨(dú)立運(yùn)行、獨(dú)立部署,再將這些小型應(yīng)用融合為一個完整的應(yīng)用。這樣每個小型應(yīng)用都是獨(dú)立的,技術(shù)棧也不用做限制了! 從而解決了前端協(xié)同開發(fā)問題。
微前端既可以將多個項(xiàng)目融合為一,又可以減少項(xiàng)目之間的耦合,提升項(xiàng)目擴(kuò)展性,相比一整塊的前端倉庫,微前端架構(gòu)下的前端倉庫傾向于更小更簡單。

為什么要使用微前端(能解決什么問題)?
- 解決不同團(tuán)隊(duì)開發(fā)同一個應(yīng)用時技術(shù)棧不同的問題
- 解決團(tuán)隊(duì)間獨(dú)立開發(fā)、獨(dú)立部署的問題
- 實(shí)現(xiàn)增量遷移(老代碼不動,不更改老項(xiàng)目,實(shí)現(xiàn)新的功能模塊)
- 解決應(yīng)用在長時間下,由于參與的人員、團(tuán)隊(duì)的增多、變遷,從一個普通應(yīng)用演變成一個巨石應(yīng)用后不便維護(hù)、迭代的問題
怎么實(shí)現(xiàn)微前端?
1、iframe 實(shí)現(xiàn)微前端
iframe 最大的特性就是提供了瀏覽器原生的硬隔離方案與微前端概念中提到的獨(dú)立開發(fā)、獨(dú)立維護(hù)、相互隔離非常的吻合。但是現(xiàn)在iframe依然不是微前端主要的實(shí)現(xiàn)方式呢,在qiankun技術(shù)圓桌中一篇關(guān)于微前端Why Not Iframe文中總結(jié)很到位:
iframe 最大的特性就是提供了瀏覽器原生的硬隔離方案,不論是樣式隔離、js 隔離這類問題統(tǒng)統(tǒng)都能被完美解決。但他的最大問題也在于他的隔離性無法被突破,導(dǎo)致應(yīng)用間上下文無法被共享,隨之帶來的開發(fā)體驗(yàn)、產(chǎn)品體驗(yàn)的問題。
2、Single-SPA 實(shí)現(xiàn)微前端
2018年誕生了Single-SPA ,Single-SPA 是一個用于前端微服務(wù)化的JavaScript前端解決方案(本身沒有處理樣式隔離、js執(zhí)行隔離)實(shí)現(xiàn)了路由劫持和應(yīng)用加載。
3、qiankun 實(shí)現(xiàn)微前端
2019年qiankun 基于Single-SPA,解決了 Single-SPA 本身沒有處理的 JS沙盒環(huán)境(樣式隔離、js執(zhí)行隔離)。提供了更加開箱即用的API( single-spa + sandbox + import-html-entry ),做到了技術(shù)棧無關(guān),且接入簡單。
qiankun入門
4、EMP 實(shí)現(xiàn)微前端
2020年 EMP 基于module Federation,接入成本低,解決第三方依賴包問題。