什么是微前端
微前端不是一种技术,是与多个可以独立发布功能的团队一起构建现代化web应用程序的技术、策略和方法,是为了面对日渐庞大的Web应用带来的种种问题,将一个庞大的前端应用转变为多个小型前端应用聚合为一的应用。微前端类似于微服务,将微服务的理念用于浏览器端。
优点
- 与技术栈无关 主应用不限制微应用的技术栈,微应用可以自主的选择所需的技术栈
- 增量升级 与一个应用庞大后,技术升级或者重构的复杂度相比,微前端对于应用的升级或者重构是一种非常有效的渐进式重构的手段和策略
- 独立部署 脱离主应用各个应用之间独立,可以单独部署,互不依赖,但部署完成后主框架自动完成同步更新并且上线影响范围低,因此风险低。
- 独立运行 每个微应用之间隔离,运行时互不依赖,可独立进行状态管理
- 松耦合代码 代码库简单、解耦,对于开发人员来说代码更容易解藕、维护,避免了组件间耦合所导致的复杂性,每个前端应用可以只关注自己所需要完成的功能。
缺点
- 有效载荷大小 每个组件都带来了自己的技术,总会出现大量代码重复,减缓用户体验,并可能在组件需要更新时产生依赖性.
- 业务和治理复杂 微前端中心将不可避免地导致需要管理更多资源 - 更多存储库,更多工具,更多构建/部署管道,更多服务器,更多领域等。
- 环境差异配置难 配置和管理基础设施需要更多
- 生态环境较差
实现方案
-
自由组织模式 iframe嵌套、npm包自由发挥
-
基座模型 single-spa,qiankun.js ,micro-app
-
去中心模式 webpack5模块联邦,多个应用可以互相嵌套,可以深入到组件导入导出