Web开发

首页 » 常识 » 诊断 » 广州蓝景分享目前常用微前端架构的几种技
TUhjnbcbe - 2025/5/15 18:12:00
北京哪家治疗白癜风的医院最好 http://www.yunweituan.com/m/

各位编程的小伙伴,今天广州蓝景小编继续跟大家分享前端技术相关文章:微前端架构的几种技术选型,你了解吗?

随着SPA大规模的应用,紧接着就带来一个新问题:一个规模化应用需要拆分。

一方面功能快速增加导致打包时间成比例上升,而紧急发布时要求是越短越好,这是矛盾的。另一方面当一个代码库集成了所有功能时,日常协作绝对是非常困难的。

而且最近十多年,前端技术的发展是非常快的,每隔两年就是一个时代,导致做编程的人员必须升级项目甚至于换一个框架。但如果大家想在一个规模化应用中一个版本做好这件事,基本上是不可能的。

最早的解决方案是采用iframe的方法,根据功能主要模块拆分规模化应用,子应用之间使用跳转。但这个方案最大问题是导致页面重新加载和白屏。

那有什么好的解决方案呢?微前端这样具有跨应用的解决方案在此背景下应运而生了!

首先:微前端的概念

微前端是什么:微前端是一种类似于微服务的架构,是一种由独立交付的多个前端应用组成整体的架构风格,将前端应用分解成一些更小、更简单的能够独立开发、测试、部署的应用,而在用户看来仍然是内聚的单个产品。有一个基座应用(主应用),来管理各个子应用的加载和卸载。

所以微前端不是指具体的库,不是指具体的框架,不是指具体的工具,而是一种理想与架构模式。

微前端的核心三大原则就是:独立运行、独立部署、独立开发

微前端的优势

采用微前端架构的好处就是,将这些小型应用融合为一个完整的应用,或者将原本运行已久、没有关联的几个应用融合为一个应用可以将多个项目融合为一,又可以减少项目之间的耦合,提升项目扩展性。

实现微前端的几种方式

从single-spa到qiankun

基于WebComponent的micro-app

webpack5实现的ModuleFederation

微前端框架的分类

Single-spa

single-spa是一个很好的微前端基础框架,而qiankun框架就是基于single-spa来实现的,在single-spa的基础上做了一层封装,也解决了single-spa的一些缺陷。

首先我们先来了解该如何使用single-spa来完成微前端的搭建。

Single-spa实现原理

首先在基座应用中注册所有App的路由,single-spa保存各子应用的路由映射关系,充当微前端控制器Controler,。URL响应时,匹配子应用路由并加载渲染子应用。上图便是对single-spa完整的描述。

有了理论基础,接下来,我们来看看代码层面时如何使用的。

以下以Vue工程为例基座构建single-spa,在Vue工程入口文件main.js完成基座的配置。

基座配置

//main.js

importVuefromvue

importAppfrom./App.vue

importrouterfrom./router

import{registerApplication,start}fromsingle-spa

Vue.config.productionTip=false

constmountApp=(url)={

returnnewPromise((resolve,reject)={

constscript=document.createElement(script)

script.src=url

script.onload=resolve

script.onerror=reject

//通过插入script标签的方式挂载子应用

constfirstScript=document.getElementsByTagName(script)[0]

//挂载子应用

firstScript.parentNode.insertBefore(script,firstScript)

})

}

constloadApp=(appRouter,appName)={

//远程加载子应用

returnasync()={

//手动挂载子应用

awaitmountApp(appRouter+/js/chunk-vendors.js)

awaitmountApp(appRouter+/js/app.js)

//获取子应用生命周期函数

returnwindow[appName]

}

}

//子应用列表

constappList=[

{

//子应用名称

name:app1,

//挂载子应用

app:loadApp(

1
查看完整版本: 广州蓝景分享目前常用微前端架构的几种技