精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

你需要了解的幾種微前端解決方案

新聞 前端
文章將講述業界各大知名IT企業使用的微前端解決方案,以及其帶來的利弊之處,因為那些弊端,使得我們團隊自己探究了一套目前認為最好的微前端解決方案。

 文章將講述業界各大知名IT企業使用的微前端解決方案,以及其帶來的利弊之處,因為那些弊端,使得我們團隊自己探究了一套目前認為最好的微前端解決方案。通過本文,可以快速幫您理清楚微前端方案的利弊,從而做出有利于您團隊的更好更明智的選擇。

一、寫在前面

在之前的文章中,我們已經深入剖析了 微前端究竟是什么,可以帶來什么收益 ,現在讓我們復習一下微前端的概念:

  1. Techniques, strategies and recipes for building a modern web app with multiple teams that can ship features independently. 

中文釋義:

可以由多個團隊獨立開發的現代web應用程序的技術、策略和方案。

本文則是在此基礎上對現有的微前端解決方案進行對比總結,廢話少說,讓我們開始今天的課題。

二、現有微前端解決方案

查找了大量的資料后,我總結了以下主流的能夠真正實現微前端概念的解決方案,如有遺漏,歡迎小伙伴們補充~

1、iframe

眾所周知, iframe 是 html 提供的標簽, 能加載其他web應用的內容 ,并且它能兼容所有的瀏覽器,因此,你可以用它來 加載任何你想要加載的web應用 

iframe最大的特性就是提供了瀏覽器原生的硬隔離方案,不論是樣式隔離、js 隔離這類問題統統都能被完美解決。讀到這時,相信小伙伴們跟我一樣,覺得iframe與微前端概念中提到的 獨立開發 、 獨立維護 、 相互隔離 非常的吻合,有種直接上ifame就完事兒了的想法,但為何它到現在也不是微前端主要的實現方式呢,后來有幸拜讀了 qiankun技術圓桌 中一篇關于微前端 Why Not Iframe 的思考,總結的很到位,現復述其中的一段描述

iframe雖然基本能做到微前端所要做的所有事情,但它的最大問題也在于他的隔離性無法被突破,導致應用間上下文無法被共享,隨之帶來開發體驗、產品體驗的問題。

以下是我對該文中總結部分的總結:

  • 不是單頁應用,會導致瀏覽器刷新 iframe url 狀態丟失、后退前進按鈕無法使用。

  • 彈框類的功能無法應用到整個大應用中,只能在對應的窗口內展示。

  • 由于可能應用間不是在相同的域內,主應用的 cookie 要透傳到根域名都不同的子應用中才能實現 免登錄 效果。

  • 每次子應用進入都是一次瀏覽器上下文重建、資源重新加載的過程,占用大量資源的同時也在極大地消耗資源。

  • iframe的特性導致搜索引擎無法獲取到其中的內容,進而無法實現應用的 seo

我猜,以上原因便是 iframe 沒能作為官方微前端方案的原因吧。

2、Web Components

或許很多小伙伴對 Web Components 不是很了解,它是由 google 推出的瀏覽器的原生組件, MDN 對 Web Components 的定義是這樣的:

作為開發者,我們都知道盡可能多的重用代碼是一個好主意。這對于自定義標記結構來說通常不是那么容易 — 想想復雜的HTML(以及相關的樣式和腳本),有時您不得不寫代碼來呈現自定義UI控件,并且如果您不小心的話,多次使用它們會使您的頁面變得一團糟。

Web Components旨在解決這些問題 — 它由三項主要技術組成,它們可以一起使用來創建封裝功能的定制元素,可以在你喜歡的任何地方重用,不必擔心代碼沖突。

它的 三項主要技術 是指:

  • Custom elements(自定義元素):一組JavaScript API,允許您定義custom elements及其行為,然后可以在您的用戶界面中按照需要使用它們。

  • Shadow DOM(影子DOM):一組JavaScript API,用于將封裝的“影子”DOM樹附加到元素(與主文檔DOM分開呈現)并控制其關聯的功能。通過這種方式,您可以保持元素的功能私有,這樣它們就可以被腳本化和樣式化,而不用擔心與文檔的其他部分發生沖突。

  • HTML templates(HTML模板): <template> 和 <slot> 元素使您可以編寫不在呈現頁面中顯示的標記模板。然后它們可以作為自定義元素結構的基礎被多次重用。

通過以上描述,再結合微前端的概念,我們來看看 Web Components 是如何做到微前端:

  • 技術棧無關: Web Components 是瀏覽器原生組件,那即是在任何框架中都可以使用。

  • 獨立開發:使用 Web Components 開發的應用無需與其他應用間產生任何關聯。

  • 應用間隔離: Shadow DOM 的特性,各個引入的微應用間可以達到相互隔離的效果。

綜上所述, Web Components 是有能力以組件加載的方式將微應用整合在一起作為微前端的一種手段,但不幸的是, Web Components 是瀏覽器的新特性,所以它的兼容性不是很好,如果有兼容性要求的項目還是無法使用,具體請查看 can i use 。

3、ESM

ESM 是 ES Module 的縮寫,是 Ecma script 2015 中提出的一種前端模塊化手段,那么,它又是如何做到微前端的呢?其實,微前端無外乎三大特性, 無技術棧限制 、 應用單獨開發 , 多應用整合 ,只要抓住了這三個特性,那就不難理解 ESM 如何做的了:

  • 無技術棧限制: ESM 加載的只是js內容,無論哪個框架,最終都要編譯成js,因此,無論哪種框架, ESM 都能加載。

  • 應用單獨開發:ESM只是js的一種規范,不會影響應用的開發模式。

  • 多應用整合:只要將微應用以 ESM 的方式暴露出來,就能正常加載。

  • 遠程加載模塊: ESM 能夠直接請求 cdn 資源,這是它與生俱來的能力。

ESM 是能做到微前端的核心思想,但是它也存在著 兼容性 這一大弊端,盡管 ESM 已經很優秀了,但是 大部分老版的瀏覽器 仍然無法直接使用,這也是babel等編譯工具出現的原因,幸運的是,他可以通過 webpack 、 rollup 、 esbuild 、 snowpack 等編譯工具成為兼容性的代碼。

4、qiankun

在微前端界, qiankun 算得上是最早成型且知名度最廣的框架了,它是真正意義上的單頁微前端框架,那么 qiankun 到底有哪些特點呢,在其 官網 中我找到了如下概括:

  • 基于 single-spa 封裝,提供了更加開箱即用的 API

  • 技術棧無關,任意技術棧的應用均可 使用/接入,不論是 React/Vue/Angular/JQuery 還是其他等框架

  • HTML Entry 接入方式,讓你接入微應用像使用 iframe 一樣簡單

  • 樣式隔離,確保微應用之間樣式互相不干擾

  • JS 沙箱,確保微應用之間 全局變量/事件 不沖突

  • 資源預加載,在瀏覽器空閑時間預加載未打開的微應用資源,加速微應用打開速度

  • umi 插件,提供了 @umijs/plugin-qiankun 供 umi 應用一鍵切換成微前端架構系統除了最后一點拓展以外,微前端想要達到的效果都已經達到。

5、EMP

EMP是由歡聚時代業務中臺自主研發的最年輕的 單頁微前端解決方案

那么,他有哪些特性呢,下面我們一起看看:

  • 基于 Webpack5 的新特性 Module Federation 實現,達到 第三方依賴共享,減少不必要的代碼引入 的目的,什么是Module Federation這里就不再贅述。

  • 每個微應用獨立部署運行,并通過cdn的方式引入主程序中,因此只需要部署一次,便可以提供給任何基于 Module Federation 的應用使用。并且此部分代碼是遠程引入,無需參與應用的打包。

  • 動態更新微應用: EMP 是通過 cdn 加載微應用,因此每個微應用中的代碼有變動時,無需重新打包發布新的整合應用便能加載到最新的微應用。

  • 去中心化,每個微應用間都可以引入其他的微應用,無中心應用的概念。

  • 跨技術棧組件式調用,提供了在主應用框架中可以調用其他框架組件的能力(目前已支持互相調用的框架及使用方式請參閱官方文檔)。

  • 按需加載,開發者可以選擇只加載微應用中需要的部分,而不是強制只能將整個應用全部加載。

  • 應用間通信,每一個應用都可以進行狀態共享,就像在使用npm模塊進行開發一樣便捷。

  • 生成對應技術棧模板,它能像 cerate-react-app 一樣,也能像 create-vue-app 一樣,通過指令一鍵搭建好開發環境,減少開發者的負擔。

  • 遠程拉取ts聲明文件, emp-cli 中內置了拉取遠程應用中代碼聲明文件的能力,讓使用ts開發的開發者不再為代碼報錯而煩惱。

細心的小伙伴應該發現, EMP 除了具備微前端的能力外,還實現了跨應用狀態共享、跨框架組件調用的能力,這是現有框架所不具備的優秀特性!

三. 總結

又到了下課的最后五分鐘時間,一起來看看今天的分享都有哪些關鍵的知識需要掌握:

1. 現有微前端解決方案:

  • iframe

  • Web Components

  • ESM

  • qiankun

  • EMP

2. 各解決方案的利弊:

    • iframe 可以直接加載其他應用,但無法做到單頁導致許多功能無法正常在主應用中展示。

    • web Components 及 ESM 是瀏覽器提供給開發者的能力,能在單頁中實現微前端,不過后者需要做好代碼隔離,并且他們都是瀏覽器的新特性,都存在 兼容性 問題,微前端方面的探索也不成熟,只能作為面向未來的微前端手段。

    • qiankun 基本上可以稱為單頁版的iframe,具有 沙箱隔離 及 資源預加載 的特點,幾乎無可挑剔。

    • EMP 作為最年輕微前端解決方案,也是吸收了許多web優秀特性才誕生的,它在實現微前端的基礎上,擴充了 跨應用狀態共享 、 跨框架組件調用 、 遠程拉取ts聲明文件 、 動態更新微應用 等能力。同時,細心的小伙伴應該已經發現, EMP 能做到 第三方依賴的共享 ,使代碼盡可能地重復利用,減少加載的內容。

 

責任編輯:張燕妮 來源: code秘密花園
相關推薦

2020-10-13 06:56:19

JavaScript異常類型開發

2020-07-10 06:11:19

數據庫擴展負載

2012-06-27 09:11:47

2020-12-09 18:22:00

微前端微服務前端

2011-04-01 11:16:06

hessian

2012-06-26 10:13:55

2020-07-10 09:47:20

自動化物聯網IOT

2015-09-17 09:36:46

Chrome改變

2022-09-14 10:00:12

前端自動化測試

2020-04-23 11:03:09

前端語言開發

2021-01-22 10:27:52

蜂窩物聯網物聯網IOT

2022-01-04 19:28:05

VMware云端虛擬化

2016-11-01 16:41:08

直通網線連接端口傳輸數據

2022-03-18 12:46:56

Go 語言編程語言

2020-09-23 13:40:01

信用卡欺詐網絡釣魚攻擊

2021-01-26 01:03:36

云原生工具云原生

2015-10-22 17:20:46

命令工具Linux

2019-07-18 12:57:21

大數據互聯網算法

2010-11-23 13:34:12

微軟Lync

2021-05-19 09:40:14

Android 12Android
點贊
收藏

51CTO技術棧公眾號

变态调教一区二区三区| 国产午夜视频在线| 亚洲视频资源| 亚洲国产cao| 久久精品国产第一区二区三区最新章节 | 久久综合一区二区| 国产精品自拍偷拍| 日本系列第一页| 日韩大片在线观看| 精品国产91亚洲一区二区三区婷婷| 日韩av一二三四区| 黄色一级片在线观看| 成人小视频免费观看| 国产精品大陆在线观看| 久久久久久久久精| 色喇叭免费久久综合网| 亚洲电影免费观看高清完整版在线观看| av观看免费在线| 成人在线观看亚洲| 久久久蜜桃精品| 91传媒视频免费| 在线免费观看国产精品| 激情久久综合| 久久天天躁狠狠躁夜夜躁2014| 亚洲一区二区观看| 66精品视频在线观看| 欧美无砖砖区免费| 亚洲欧洲日产国码无码久久99| 国产黄色小视频在线| 久久精品男人的天堂| 国产精品一区二区av| 国产情侣在线播放| 奇米888四色在线精品| 97视频免费看| 久久精品久久国产| 无码一区二区三区视频| 在线观看中文字幕亚洲| 欧美特黄一区二区三区| 精品少妇一区| 精品国产a毛片| 亚洲精品乱码久久久久久9色| 日韩成人综合网| 欧美日韩一区二区三区免费看| 欧美日韩在线中文| 一本色道久久88精品综合| www.桃色.com| 久久国产三级| 色婷婷激情久久| 青青草成人免费在线视频| 大片免费在线观看| 国产精品久久久一本精品| 蜜桃视频在线观看成人| 手机看片1024日韩| 不卡视频一二三| 粉嫩av一区二区三区免费观看| 国产理论片在线观看| 麻豆成人av在线| 国产精品国产福利国产秒拍| 日本熟女毛茸茸| 999亚洲国产精| 亚洲18私人小影院| 天天插天天操天天干| 亚洲美女黄色| 欧美日韩国产精品一区二区亚洲| 一区二区欧美视频| 日本精品免费视频| 1区2区在线观看| 亚洲免费大片在线观看| 成人在线免费高清视频| 天天色天天射天天综合网| 性开放的欧美大片| 久久精品日产第一区二区三区高清版 | 99影视tv| 免费观看国产视频| 国产小视频在线| 粉嫩高潮美女一区二区三区| 国产亚洲一区二区三区在线播放 | 亚洲日本成人女熟在线观看 | 亚洲综合网站在线观看| 美女扒开大腿让男人桶| 在线免费看h| 99这里只有精品视频| 欧美一区二区三区四区五区| 涩视频在线观看| 色爱av综合网| 色婷婷久久av| 久久精品免费在线| 日韩影院精彩在线| 91黄在线观看| 三级视频网站在线| 91aaaa| 国产一卡二卡在线| 亚洲一区二区三区四区五区午夜| 日本精品视频网站| 一卡二卡三卡在线观看| 国产成人午夜99999| 精品欧美国产| 日韩黄色影院| 欧美日韩在线视频一区二区| 亚洲一区精品视频在线观看| 国内精品国产成人国产三级粉色| 在线播放国产一区中文字幕剧情欧美 | 亚洲国产精品激情在线观看 | 美女爽到呻吟久久久久| 92看片淫黄大片欧美看国产片 | 麻豆一区在线| 国产小视频国产精品| 亚洲乱码一区二区三区| 在线免费观看亚洲视频| 99国产精品私拍| 国产精品video| www.亚洲天堂.com| 国产亚洲精品免费| 青青青在线观看视频| 精品亚洲美女网站| 亚洲精品在线三区| 国产中文av在线| 久久中文在线| 国产成人av一区二区三区| 成人在线免费看| 亚洲3atv精品一区二区三区| 91女神在线观看| 亚洲bt欧美bt精品777| 欧美乱大交xxxxx| 无码视频在线观看| 成人激情午夜影院| 国产女主播av| 亚洲电影二区| 中文字幕在线国产精品| 啦啦啦免费高清视频在线观看| 国产精品系列在线观看| 久久精品夜夜夜夜久久| av无码久久久久久不卡网站| 亚洲精品成a人ⅴ香蕉片| 亚洲欧美精品在线| 中日韩精品视频在线观看| 国产精品123区| 在线视频欧美一区| 成人做爰视频www网站小优视频| 亚洲激情第一页| 久久精品国产亚洲av麻豆色欲| 国产麻豆精品theporn| 一区国产精品| 图片一区二区| xxxxx成人.com| 影音先锋国产在线| 亚洲欧美专区| 国产sm精品调教视频网站| 亚洲午夜精品久久久中文影院av | 韩国三级电影久久久久久| av中文字幕第一页| 亚洲精品老司机| 岛国大片在线免费观看| 三级影片在线看| 老牛嫩草一区二区三区日本| 麻豆一区区三区四区产品精品蜜桃| hd国产人妖ts另类视频| 日韩色在线观看| 久青草免费视频| 波多野结衣中文一区| av高清在线免费观看| 青青久久av| 国产999视频| 91在线品视觉盛宴免费| 欧美色精品天天在线观看视频| 丰满的亚洲女人毛茸茸| 美女国产一区二区三区| 欧美日韩视频免费在线观看| 9l视频自拍蝌蚪9l视频成人| 91精品国产电影| 免费人成在线观看网站| 色噜噜夜夜夜综合网| 成人做爰69片免网站| 国产做a爰片久久毛片| av动漫在线免费观看| 国产福利资源一区| 日本高清久久天堂| 日本黄色片在线观看| 日韩精品一区二区三区蜜臀| 日本免费观看视| 中文久久乱码一区二区| 亚洲天堂一区二区在线观看| 亚洲国产精品第一区二区三区| 欧美精品免费观看二区| 色8久久久久| 欧美激情一区二区久久久| 免费在线一级视频| 欧美一区二区三区视频免费播放| 日产精品久久久久| 国产清纯美女被跳蛋高潮一区二区久久w| 中国黄色片一级| 亚洲狠狠婷婷| 亚洲视频精品一区| 美女一区2区| 成人乱色短篇合集| 国产精品电影| 日韩视频免费中文字幕| 日本精品999| 欧美裸体一区二区三区| 国产大片中文字幕在线观看| 中文文精品字幕一区二区| 国产精品手机在线观看| 美女视频免费一区| 久久久久久久中文| 一区二区电影| 亚洲乱码国产乱码精品天美传媒| 成人精品毛片| 成人激情综合网| 欧美7777| 国产最新精品视频| 欧美被日视频| 亚洲人成在线电影| 老司机午夜福利视频| 3d成人h动漫网站入口| 久久久久久无码精品大片| 亚洲综合久久久| www.xx日本| 国产欧美va欧美不卡在线 | 久久中文字幕电影| 麻豆av免费看| 国产美女精品一区二区三区| 国内自拍视频一区| 国产精品久久久亚洲一区| 国产小视频免费| 五月天久久777| 亚洲免费久久| 成人精品中文字幕| 日本精品国语自产拍在线观看| 精品国产午夜肉伦伦影院| 999热视频在线观看| 成人短视频软件网站大全app| 国产精品久久久久9999| 欧美xxxxxx| 国产91精品久| 五月天国产在线| 97久久伊人激情网| 91豆花视频在线播放| 久久久久久国产| 伊人222成人综合网| 久久亚洲精品成人| 黄色国产网站在线播放| 精品国产美女在线| 黄色免费在线网站| 欧美理论电影在线观看| 欧洲一区二区三区| 久久久久久网址| 美女的胸无遮挡在线观看| 韩国一区二区电影| 黑森林国产精品av| 奇米一区二区三区四区久久| 午夜影视一区二区三区| 欧美一区二区影院| 日韩av福利| 国产精品对白刺激| 另类一区二区三区| 国产一区二区色| 精品视频在线观看免费观看| 成人黄色片视频网站| 9999久久久久| 久久精品aaaaaa毛片| 视频一区在线观看| 亚洲免费视频一区| 欧美精品国产| 精品少妇在线视频| 奶水喷射视频一区| 亚洲最大综合网| 黄色精品一二区| 亚洲成a人无码| 久久综合久久鬼色| 男人天堂资源网| 一级日本不卡的影视| 亚州国产精品视频| 欧美三级视频在线| 精品人妻少妇AV无码专区| 亚洲国产中文字幕久久网| 国产一区二区影视| 久久精品国产精品| 超碰97国产精品人人cao| 欧美亚洲视频一区二区| 图片一区二区| 九色91视频| 久久国产精品成人免费观看的软件| 成年人三级视频| 国产偷自视频区视频一区二区| 亚洲黄色av网址| 丁香桃色午夜亚洲一区二区三区| 最近中文字幕免费| 一区二区免费在线播放| 免费看毛片网站| 欧美一区二区三区视频免费播放| 四虎永久在线精品免费网址| 最近中文字幕日韩精品| 都市激情久久综合| 国产精品露脸自拍| 国产精品成人自拍| 亚洲精品影院| 99热这里只有精品8| 亚洲网中文字幕| 久久久久88色偷偷免费| 欧美成欧美va| 欧美丝袜自拍制服另类| 色婷婷激情五月| 久久久精品视频成人| 小黄鸭精品aⅴ导航网站入口| 99久久国产免费免费| 日韩精品欧美| www.玖玖玖| 成人免费视频免费观看| 久久福利免费视频| 色视频成人在线观看免| 国精产品一品二品国精品69xx| 久久精品99国产精品酒店日本| 黑人巨大精品| 国产视色精品亚洲一区二区| 午夜免费一区| 99视频在线视频| 91亚洲男人天堂| 久久伊人成人网| 91精品国产入口在线| 爱久久·www| 青青草成人在线| 国产精品黄网站| 国产树林野战在线播放| 蜜桃视频在线一区| 国产肥白大熟妇bbbb视频| 婷婷久久综合九色国产成人 | 欧美一区二区三区综合| 捆绑调教一区二区三区| 亚洲精品一区二区三区影院忠贞| 欧美日韩国产一区在线| 涩涩视频免费看| 久久久久久国产精品久久| 日本一区二区三区播放| 美女在线免费视频| 国产伦精品一区二区三区视频青涩| 国产三级在线观看完整版| 在线看一区二区| 国产在线视频福利| 国产91色在线|| 国产精品一区二区99| 日韩一级片播放| 国产清纯白嫩初高生在线观看91 | 日韩一级二级| 视频一区免费观看| 青青草一区二区三区| 极品蜜桃臀肥臀-x88av| 欧美体内she精视频| 999国产在线视频| 国产精品入口日韩视频大尺度| 精品少妇av| av污在线观看| 国产精品福利在线播放| 国产精品久久久久久久久久久久久久久久| 中文字幕亚洲欧美日韩在线不卡 | 久久中文在线| 中文字幕在线观看二区| 91精品国产综合久久精品app| 久草中文在线观看| 亚洲一区精品电影| 好看的亚洲午夜视频在线| 88av在线播放| 一道本成人在线| 尤物网在线观看| 亚洲a中文字幕| 亚洲精品日韩久久| 最近中文字幕在线mv视频在线| 欧美三级乱人伦电影| 成人免费看片| 国产一区二区三区奇米久涩| 乱码第一页成人| 蜜桃av.com| 日韩精品中文字幕一区二区三区| sm久久捆绑调教精品一区| 欧美成人在线免费观看| 麻豆成人久久精品二区三区红| 欧美黄色aaa| 亚洲美女又黄又爽在线观看| 国产综合色激情| 成人免费在线网| 国产日韩三级在线| 精品国精品国产自在久不卡| 91精品国产色综合久久不卡98口| 深爱激情综合| 欧美人与性动交α欧美精品| 欧美日韩国产区| 黄色成人在线观看| 久久国产主播精品| 国产在线视频不卡二| 国产又黄又粗又爽| 蜜臀久久99精品久久久久久宅男| 欧美激情久久久久久久久久久| 久久久久久蜜桃一区二区| 午夜精品久久久久久| 五月香视频在线观看| 精品国产乱码久久久久久郑州公司| 精品在线一区二区三区| 色网站在线播放| 久久国产精品电影| 国内精品久久久久久久久电影网 | 久久九九全国免费|