精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

天天成人综合网| 成人欧美一区二区三区在线| 无码人妻精品一区二区三| av人人综合网| 国产偷国产偷精品高清尤物| 国产精品自拍视频| 久久免费精彩视频| 国产日产精品_国产精品毛片| 欧美日韩免费观看一区三区| 欧妇女乱妇女乱视频| 国产免费a∨片在线观看不卡| 国产精品一区二区在线播放 | 91色琪琪电影亚洲精品久久| 国产精品99无码一区二区| 欧美综合一区| 日韩精品视频在线| 久久精品一卡二卡| 在线天堂中文资源最新版| 亚洲欧美日韩一区| 狠狠色噜噜狠狠色综合久| 91麻豆成人精品国产| 一区二区三区国产盗摄| 久久在线视频在线| 中文字幕 自拍| 粉嫩av一区二区| 欧美人动与zoxxxx乱| 欧美乱大交xxxxx潮喷l头像| 求av网址在线观看| 国产视频一区在线观看| 国产在线观看一区| 国产夫绿帽单男3p精品视频| 日本视频免费一区| 2018国产精品视频| 国产在线免费视频| 中文不卡在线| xxxx性欧美| 三年中国中文观看免费播放| 午夜a一级毛片亚洲欧洲| 日韩精品最新网址| 日本一区二区三区在线免费观看| 成人在线免费av| 亚洲成人高清在线| 国产精品第157页| 三级网站视频在在线播放| 国产精品国产自产拍高清av王其| 日本亚洲自拍| 黄色在线免费观看大全| 99久久99久久精品免费观看| http;//www.99re视频| 国产精品久久久久精| 久久精品国产99国产精品| 日韩免费观看网站| 精产国品一区二区| 午夜综合激情| 国产成人在线精品| 天堂av免费在线观看| 久久久亚洲人| 国产成人在线播放| 在线中文字幕网站| 韩国欧美国产1区| 亚洲影院高清在线| 精品久久久无码中文字幕| 国产乱对白刺激视频不卡| 亚洲a∨日韩av高清在线观看| av资源免费看| 国产精品18久久久久久久久 | 性欧美办公室18xxxxhd| 日韩精品视频免费看| 亚洲美洲欧洲综合国产一区| 欧美一区在线直播| 中文字幕乱伦视频| 九九国产精品视频| 91在线在线观看| 国产自产一区二区| 久久女同精品一区二区| 日韩一本精品| a视频在线播放| 亚洲成精国产精品女| 欧美丰满熟妇bbbbbb百度| 电影亚洲精品噜噜在线观看| 欧美性大战久久久| 性生活在线视频| 欧美大胆视频| 中文字幕一精品亚洲无线一区| 国产高清视频免费在线观看| 欧美性色综合| 日韩av手机在线看| 国产欧美久久久精品免费| 成人亚洲一区二区一| 欧美高清视频一区二区三区在线观看 | 日韩欧美综合视频| 亚洲日本黄色| 国产欧美日韩中文字幕在线| 国产福利免费视频| 久久综合色天天久久综合图片| 水蜜桃亚洲一二三四在线| √天堂8在线网| 欧美性极品xxxx娇小| 国产美女18xxxx免费视频| 99re8这里有精品热视频免费| 亚洲乱码一区av黑人高潮| 我要看一级黄色录像| 国产日韩综合| 亚洲一区亚洲二区| 九色视频在线播放| 伊人夜夜躁av伊人久久| 激情综合网俺也去| 精品淫伦v久久水蜜桃| 中文字幕亚洲情99在线| 国产成人无码精品亚洲| 精品中文av资源站在线观看| 精品午夜一区二区| 成人日韩欧美| 欧美在线视频日韩| 亚洲观看黄色网| 欧美一区亚洲| 国产精品视频地址| 欧美成人免费| 亚洲妇熟xx妇色黄| 手机av在线免费| 少妇精品久久久一区二区| 操日韩av在线电影| 在线观看国产小视频| 久久女同精品一区二区| 999在线观看视频| 久久中文字幕一区二区| 中文日韩在线观看| 天堂在线免费观看视频| 成人一区二区三区| 国产欧美久久久久| 国产精品毛片无码| 日韩一区二区福利| 青青国产在线视频| 久久久国产精品午夜一区ai换脸| 日韩日韩日韩日韩日韩| 97色婷婷成人综合在线观看| 中文字幕av一区二区| 人妻 日韩精品 中文字幕| av网站免费线看精品| 欧美图片激情小说| av一级亚洲| 欧美激情网站在线观看| 精品国产乱码一区二区三| 亚洲美女免费视频| 99999精品| 欧美成人tv| 亚洲综合在线做性| 在线电影福利片| 日韩欧美一级在线播放| 中文字幕在线观看成人| 国产精品亚洲视频| 香港三级日本三级a视频| 日韩欧美一级| 久久人人爽人人| 天天操天天干天天插| 亚洲成人综合网站| av鲁丝一区鲁丝二区鲁丝三区| 伊人影院久久| 久久婷婷人人澡人人喊人人爽| 三妻四妾完整版在线观看电视剧| 亚洲精品成人免费| 日韩三级一区二区| 国产精品视频麻豆| 99999精品| 夜夜嗨av一区二区三区网站四季av| 国产三区二区一区久久| 亚洲精品日产| 色偷偷888欧美精品久久久| 国产一区二区自拍视频| 一区二区三区四区视频精品免费| 99热这里只有精品2| 亚洲无毛电影| 久中文字幕一区| 成人做爰免费视频免费看| 色婷婷**av毛片一区| 国产a级免费视频| 午夜成人免费电影| 成人国产精品久久久网站| 麻豆精品国产传媒mv男同| 浴室偷拍美女洗澡456在线| 国产主播性色av福利精品一区| 日本精品久久中文字幕佐佐木| 青青影院在线观看| 欧美不卡一区二区| 无码人妻丰满熟妇区bbbbxxxx| 中文字幕欧美一| 男人网站在线观看| 日本色综合中文字幕| 91传媒免费视频| 九九综合在线| 亚洲精品欧美日韩| 免费成人动漫| 欧美乱大交xxxxx另类电影| 无码精品在线观看| 欧美精品在线观看播放| 日韩毛片在线视频| 中文字幕日本乱码精品影院| 在线观看日韩精品视频| 精品影院一区二区久久久| 日本十八禁视频无遮挡| 久久综合av| 精品无人乱码一区二区三区的优势 | 男女av在线| 日韩一二在线观看| 国产精品露脸视频| 亚洲成a天堂v人片| 乱老熟女一区二区三区| 91丨九色丨蝌蚪丨老版| 欧美视频国产视频| 久久国产一二区| 欧美一区二区三区综合| 欧美色网址大全| 精品视频在线观看| ccyy激情综合| 91免费视频国产| 日本在线中文字幕一区二区三区| 国内精品久久久久影院 日本资源| 午夜免费播放观看在线视频| 亚洲精品视频在线播放| 俄罗斯嫩小性bbwbbw| 欧美久久久一区| 久久精品99北条麻妃| 性做久久久久久免费观看欧美| 久久久久人妻一区精品色| 久久美女高清视频| 一起草在线视频| 高清不卡一二三区| 天天色天天干天天色| 久久精品国产精品亚洲精品 | 国产精品一二一区| 美女在线视频一区二区| 日韩高清一区在线| 国产真实乱子伦| 国产视频亚洲| 凹凸国产熟女精品视频| 亚洲美女91| 欧美 日韩 亚洲 一区| 亚洲一级影院| 日韩 欧美 视频| 亚洲午夜极品| www.成年人视频| 妖精视频成人观看www| 日韩av高清在线看片| 99精品国产在热久久下载| 国产原创中文在线观看| 亚洲激情网站| 成人中文字幕在线播放| 日韩一区二区免费看| 成人一对一视频| 国产精品一区亚洲| 国产精品97在线| 丝袜美腿成人在线| 天天操天天摸天天爽| 美国欧美日韩国产在线播放 | 成人黄页毛片网站| 水蜜桃av无码| 久久综合中文字幕| 亚洲一区二区三区日韩| 国产精品免费免费| 午夜国产小视频| 亚洲精品国产一区二区三区四区在线| 欧美日韩精品在线观看视频| 亚洲一区二区视频在线| 国产成人无码精品久在线观看| 欧美性猛交xxxx富婆弯腰| 成人免费视频国产免费| 欧美日韩三级在线| 国产免费黄色录像| 亚洲第一色中文字幕| 四虎国产精品永远| 在线视频免费一区二区| 黄色网址在线免费观看| 欧美精品久久久久久久免费观看| 国产777精品精品热热热一区二区| 奇米4444一区二区三区| 国产乱子精品一区二区在线观看| 亚洲综合小说区| 亚洲欧洲免费| 在线观看国产一区| 亚洲欧洲午夜| 性欧美videossex精品| 国产精品一区二区久激情瑜伽 | 午夜精品久久久久久久99热黄桃| 精品国产乱码久久久久久牛牛| 男人久久精品| 美女精品视频一区| 最新中文字幕在线播放| 91在线视频免费| 欧美调教网站| 天天爱天天做天天操| 国产一区二区三区的电影| 中文字幕第38页| 成人av在线电影| 伊人久久久久久久久久久久久久| 亚洲aaa精品| 国产麻豆免费观看| 亚洲欧美国产va在线影院| 4438x成人网全国最大| 青青久久av北条麻妃黑人| 国产精品视频一区视频二区| 免费观看成人高| 欧美日本中文| www.这里只有精品| 久久久久久久久久久电影| 久久精品波多野结衣| 欧美日韩aaaaaa| 欧美色视频免费| 欧美国产乱视频| 激情久久99| 国产亚洲自拍偷拍| 欧美99在线视频观看| 日韩一级理论片| 99久久er热在这里只有精品15| 青草影院在线观看| 欧美撒尿777hd撒尿| 日韩av资源| 国产69精品久久久| 免费观看亚洲视频大全| 天堂√在线观看一区二区| 一区二区动漫| 久久福利小视频| 亚洲精品乱码久久久久| 一级黄色片在线看| 在线国产精品播放| 竹内纱里奈兽皇系列在线观看 | 日韩三级在线| 日韩欧美在线免费观看视频| 91小视频免费看| 日韩aaaaaa| 欧美精品一区二区久久久| 色屁屁www国产馆在线观看| 亚洲va男人天堂| 久久中文视频| 免费看涩涩视频| 欧美国产禁国产网站cc| 中文字幕一区二区人妻视频| 亚洲精品久久视频| 国产盗摄——sm在线视频| 成人区精品一区二区| 欧美日韩免费| 亚洲欧洲国产视频| 亚洲制服欧美中文字幕中文字幕| 国产日韩免费视频| 欧美精品免费在线| 午夜日韩影院| 一二三四中文字幕| 国产成人av电影在线观看| 国产1区2区3区4区| 欧美xfplay| 888av在线视频| 久久精品国产理论片免费| 亚洲综合不卡| 中文字幕第20页| 欧美人牲a欧美精品| gogo在线高清视频| 国产厕所精品在线观看| 亚洲区欧美区| 麻豆精品免费视频| 欧美日韩综合不卡| 国产调教视频在线观看| 97av影视网在线观看| 亚洲精选成人| caopeng视频| 欧美日本视频在线| 污污的视频在线观看| 精品伦精品一区二区三区视频| 久久成人在线| 精品丰满少妇一区二区三区| 欧美精选午夜久久久乱码6080| 天堂成人av| 裸体丰满少妇做受久久99精品| 日韩精品欧美成人高清一区二区| 少妇视频一区二区| 日韩免费视频一区二区| 午夜影院在线观看国产主播| 欧美连裤袜在线视频| 久久99热这里只有精品| 久久久全国免费视频| 国产婷婷成人久久av免费高清| 精品69视频一区二区三区| 欧美人与动牲交xxxxbbbb| 久久久久青草大香线综合精品| 亚洲无码精品国产| 国内伊人久久久久久网站视频 | 五月婷婷深爱五月| 樱桃视频在线观看一区| 三级毛片在线免费看| 国产日韩在线播放| 9国产精品视频| 日韩三级在线观看视频| 亚洲国模精品一区| 日本精品久久| 国产精品沙发午睡系列| 1000部国产精品成人观看| 亚洲色欧美另类| 亚洲qvod图片区电影| 日韩国产精品久久久| 精品少妇theporn| 色噜噜狠狠色综合网图区 | 亚洲一区二区免费视频软件合集|