首頁 > 科技

說到微前端你真的都瞭解嗎?

2021-08-03 05:14:13

一、概念

說到微前端之前先提一下微服務。微服務是為了解決龐大的後端服務帶來的變更與拓展方面的限制,而將一個大型的服務應用分割成若干個顆粒度較小的可獨立開發、測試及部署的單個子應用。而越來越複雜的前端項目也面臨同樣的問題。於是有了微前端的誕生。

微前端與微服務類似,都是將一個複雜大型的應用程式拆解成顆粒度更小的可以獨立開發、測試及部署的小模組,並通過一些策略方案來確定這些模組之間的依賴關係。

微前端概念誕生於 2016年,Micro Frontends 官網對微前端概念的定義是:

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

翻譯成中文為:微前端是構建一個現代 Web 應用所需要的技術、策略和方法,並具備多個團隊獨立開發、部署的特性。

從以上概念可以看出微前端並不是一種新的技術,而是為了提高大型複雜應用的多團隊協作,提升項目的可維護性、拓展性和靈活性,研究出的一種技術策略和方法,它是一種宏觀上的架構模式。

二、特點

(一)程式碼庫更小,可維護性更高

比起傳統的一整個項目程式碼塊,微前端架構下的程式碼塊更小、更容易開發。還可以避免模組之間的隱式耦合。獨立性更強,維護性更高。

(二) 漸進式升級與迭代

微前端架構可以讓新舊程式碼和諧共存,在重構時,可以一邊將舊的應用逐步翻新,一邊繼續提供新功能,直到整個重構完成。這種增量升級的能力意味著能夠對產品功能進行低風險的局部替換,包括升級依賴項、更替架構、UI 改版等。另一方面,也帶來了技術選型上的靈活性,有助於新技術、新互動模式的實驗性試錯。

(三) 獨立部署

獨立部署在微前端中非常重要,子模組之間只有部署,才能減輕依賴,降低耦合。獨立部署能夠縮小項目變更範圍,降低生產風險。無論前端程式碼在何處託管,每個微前端都應該有連續交付通道,該通道可以構建、測試並將其一直部署到生產環境中。

微前端的理念源自微服務,使用一個主應用作為主體框架和微應用載入器,根據不用的路由載入不同的微應用。微應用之間做到技術隔離,在展示上卻是統一的。

微前端主要用來解決單體應用在相對長的時間跨度下,從一個普通應用變成一個巨石應用(Frontend Monolith)後,隨著而來的應用不可維護問題。

微前端的優點

  • 技術棧無關

    主框架不限制接入應用的技術棧,微應用具備完全自主權

  • 獨立開發、獨立部署

    微應用倉庫獨立,前後端可獨立開發,部署完成後主框架自動完成同步更新

  • 增量升級

在面對各種複雜場景時,我們通常很難對一個已經存在的系統做全量的技術棧升級或重構,而微前端是一種非常好的實施漸進式重構的手段和策略

  • 獨立運行時

    每個微應用之間狀態隔離,運行時狀態不共享

    好了,關於

    好了,關於微前端的知識點就給大家介紹這麼多,後續再給大家補充,希望對大家有所幫助!


IT145.com E-mail:sddin#qq.com