微前端需要 JavaScript為什么?原因分析
微前端需要 JavaScript為什么?許多微前端解決方案都是JavaScript 框架。JavaScript 不是可選的。想要高度交互的體驗,而JS 在提供這些體驗中發(fā)揮著至關(guān)重要的作用。
除了加載速度快和可訪問 Web 應(yīng)用的優(yōu)點外,還有其他因素應(yīng)該考慮。許多JavaScript 框架都提供了 isomorphic 渲染能力。不僅能夠在客戶端進(jìn)行拼接(stitch)還能在服務(wù)器上準(zhǔn)備好一切。如果有性能要求(如第一次有意義渲染的初始時間)。
isomorphic 渲染有其自身的挑戰(zhàn)
即使一個 JavaScript 解決方案沒有提供 isomorphic 呈現(xiàn)沒問題。如果不想在構(gòu)建微前端時使用JavaScript,當(dāng)然可以這樣做。有許多模式,其中很多根本不需要 JavaScript。
考慮一種“比較舊的”模式:使用<frameset>。有一些現(xiàn)如今人們試圖做的分割,以前就支持了。一個頁面可能由另一個服務(wù)渲染負(fù)責(zé)菜單,而另一個頁面負(fù)責(zé)標(biāo)題。
- <frameset cols="25%,*,25%"> <frame src="menu.html"> <frame src="content.html"> <frame src="sidebar.html"></frameset>
使用更靈活且仍然受到活躍支持的<iframe>元素。提供了一些很好的特性,使得不同的微前端相互隔離,仍可以通過postMessage進(jìn)行通信。
微前端Micro-Frontends一種類似于微服務(wù)的架構(gòu),將微服務(wù)的理念應(yīng)用于瀏覽器端,即將 Web 應(yīng)用由單一的單體應(yīng)用轉(zhuǎn)變?yōu)槎鄠€小型前端應(yīng)用聚合為一的應(yīng)用。