自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

五分鐘技術(shù)趣談 | 淺談微前端

移動(dòng)開發(fā)
前端即網(wǎng)站前臺(tái)部分,運(yùn)行在PC端,移動(dòng)端等瀏覽器上展現(xiàn)給用戶瀏覽的網(wǎng)頁。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,HTML5,CSS3,前端框架的應(yīng)用,跨平臺(tái)響應(yīng)式網(wǎng)頁設(shè)計(jì)能夠適應(yīng)各種屏幕分辨率,合適的動(dòng)效設(shè)計(jì),給用戶帶來極高的用戶體驗(yàn)。隨著時(shí)間的推移,前端往往會(huì)越來越臃腫,隨著技術(shù)棧的更新、UI的多元化、定制化的需求開發(fā)以及更多的不可預(yù)知的原因使得項(xiàng)目越來越難維護(hù)。因此,微前端概念橫空出世。

Part 01  什么是微前端  

微前端是一種多個(gè)團(tuán)隊(duì)通過獨(dú)立發(fā)布功能的方式來共同構(gòu)建現(xiàn)代化web應(yīng)用的技術(shù)手段及方法策略。

微前端借鑒了微服務(wù)的架構(gòu)理念,將一個(gè)龐大的前端應(yīng)用拆分為多個(gè)獨(dú)立靈活的小型應(yīng)用,每個(gè)應(yīng)用都可以獨(dú)立開發(fā)、獨(dú)立運(yùn)行、獨(dú)立部署,再將這些小型應(yīng)用聯(lián)合為一個(gè)完整的應(yīng)用。微前端既可以將多個(gè)項(xiàng)目融合為一,又可以減少項(xiàng)目之間的耦合,提升項(xiàng)目擴(kuò)展性,相比一整塊的前端倉庫,微前端架構(gòu)下的前端倉庫傾向于更小更靈活。微前端的架構(gòu)如下:

圖片

Part 02  特性  

- 技術(shù)棧無關(guān)

主框架不限制接入應(yīng)用的技術(shù)棧,子應(yīng)用可自主選擇技術(shù)棧。

- 獨(dú)立開發(fā)/部署

各個(gè)團(tuán)隊(duì)之間倉庫獨(dú)立,單獨(dú)部署,互不依賴。

- 增量升級(jí)

當(dāng)一個(gè)應(yīng)用龐大之后,技術(shù)升級(jí)或重構(gòu)相當(dāng)麻煩,而微應(yīng)用具備漸進(jìn)式升級(jí)的特性。

- 獨(dú)立運(yùn)行時(shí)

微應(yīng)用之間運(yùn)行時(shí)互不依賴,有獨(dú)立的狀態(tài)管理。

- 提升效率

應(yīng)用越龐大,越難以維護(hù),協(xié)作效率越低下。微應(yīng)用可以很好拆分,提升效率。

Part 03  目前可用的微前端方案 

微前端的方案目前有以下幾種類型:

  • 基于iframe完全隔離的方案

作為前端開發(fā),我們對(duì)iframe已經(jīng)非常熟悉了,在一個(gè)應(yīng)用中可以獨(dú)立運(yùn)行另一個(gè)應(yīng)用。它具有顯著的優(yōu)點(diǎn):

1.非常簡單,無需任何改造;

2.完美隔離,JS、CSS都是獨(dú)立的運(yùn)行環(huán)境;

3.不限制使用,頁面上可以放多個(gè)iframe來組合業(yè)務(wù)。

當(dāng)然,缺點(diǎn)也非常突出:

1.無法保持路由狀態(tài),刷新后路由狀態(tài)就丟失;

2.完全的隔離導(dǎo)致與子應(yīng)用的交互變得極其困難,只能采用postMessage方式;

3.iframe中的彈窗無法突破其本身;

4.整個(gè)應(yīng)用全量資源加載,加載太慢;

這些顯著的缺點(diǎn)也催生了其他方案的產(chǎn)生。

  • 基于single-spa路由劫持方案

single-spa是社區(qū)公認(rèn)的主流方案,可以基于它做二次開發(fā)。

通過劫持路由的方式來做子應(yīng)用之間的切換,但接入方式需要融合自身的路由,有一定的局限性。

  • 阿里qiankun

qiankun對(duì)single-spa做了一層封裝。主要解決了single-spa的一些痛點(diǎn)和不足。通過import-html-entry包解析HTML獲取資源路徑,然后對(duì)資源進(jìn)行解析、加載。

qiankun可以用于任意js框架,微應(yīng)用接入像嵌入一個(gè)iframe系統(tǒng)一樣簡單。qiankun@2.0將跳出route-based的微前端場景。

- 優(yōu)點(diǎn)

1.阿里團(tuán)隊(duì)開發(fā)維護(hù),文檔多。

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

3.HTML Entry接入方式,讓你接入微應(yīng)用像使用iframe一樣簡單。

4.樣式隔離,確保微應(yīng)用之間樣式互相不干擾。

5.JS沙箱,確保微應(yīng)用之間全局變量/事件不沖突。

6.資源預(yù)加載,在瀏覽器空閑時(shí)間預(yù)加載未打開的微應(yīng)用資源,加速微應(yīng)用打開速度。

7.umi插件,提供了@umijs/plugin-qiankun供umi應(yīng)用一鍵切換成微前端架構(gòu)系統(tǒng)。

8.兼容IE11。

- 缺點(diǎn)

1.上線部署文檔較少。

2.qiankun只能解決子項(xiàng)目之間的樣式相互污染,不能解決子項(xiàng)目的樣式污染主項(xiàng)目的樣式。

  • 京東micro-app方案

京東micro-app并沒有沿襲single-spa的思路,而是借鑒了WebComponent思想,通過CustomElement結(jié)合自定義的ShadowDom,將微前端封裝成一個(gè)webComponents組件,從而實(shí)現(xiàn)微前端的組件化渲染。

Part 04、微前端實(shí)踐  

以qiankun為例,構(gòu)建一個(gè)微前端。

?? 主應(yīng)用(vue)

1、安裝qiankun

圖片

2、修改 main.js

圖片

3、router頁面配置加載微應(yīng)用

修改主應(yīng)用router.js

圖片

在About.vue文件中加入

圖片

圖片

4、如果在vue-admin模板中使用qiankun,需要注意的是:<div id="container"></div> 不能寫在頁面中,只能寫在Appmain.vue 中,路由需要配置重定向。

圖片

判斷改變路由。

圖片

AppMain.vue,需要判斷顯示的是哪個(gè)微應(yīng)用,改變其id顯示。

圖片

微應(yīng)用(vue)

1、在src目錄新增public-path.js:

圖片

2、main.js修改。

圖片

3、打包配置修改(vue.config.js):

圖片

責(zé)任編輯:龐桂玉 來源: 移動(dòng)Labs
相關(guān)推薦

2023-07-23 18:47:59

Docker開源

2023-07-02 16:34:06

GPU虛擬化深度學(xué)習(xí)

2024-12-18 14:10:33

2023-09-02 20:22:42

自動(dòng)化測試軟件開發(fā)

2023-09-03 19:06:42

2023-08-06 07:05:25

Android優(yōu)化

2023-07-16 18:49:42

HTTP網(wǎng)絡(luò)

2023-07-02 16:17:31

VR虛擬現(xiàn)實(shí)

2023-07-02 16:09:57

人工智能人臉識(shí)別

2023-09-12 07:10:13

Nacos架構(gòu)

2023-07-31 08:55:15

AI技術(shù)網(wǎng)絡(luò)暴力

2023-08-07 06:39:03

網(wǎng)絡(luò)傳輸

2023-07-12 15:50:29

機(jī)器學(xué)習(xí)人工智能

2023-08-29 06:50:01

Javamaven

2023-08-06 07:00:59

Openstack網(wǎng)絡(luò)

2023-08-15 14:46:03

2023-09-17 17:51:43

Android 14

2023-07-12 16:03:37

Android開發(fā)架構(gòu)

2023-08-06 06:55:29

數(shù)字可視化物聯(lián)網(wǎng)

2023-07-16 18:42:18

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)