视频:https://www.bilibili.com/video/BV1t84y1F71m?p=4
背景 - 现在的NPM包抽取、复用的模式有自己的弊端:
1、维护周期长
2、多个系统要统一集体升级
3、不同的人维护不同的组件,规范、代码风格不容易统一
4、维护起来比较困难
微前端是一种策略、一种模式、一种方法论、一中架构思维,不单单是一种技术!
它借鉴了后端微服务的概念,就像是搭积木一样将多个可独立交付的页面、模块拼接整合到一个系统里。
保证了系统的统一性、又支持多人协作的功能。
微前端解决的问题:
解决复杂、多技术混合等大型项目面临的如何更好的去迭代的问题,
解决多个应用之间的资源共享
跨技术栈
应用场景:
1、拆分巨型应用,提升系统可维护性
2、维护历史应用,实现增量开发
微前端的特点
1、独立部署
2、团队自治(项目分给不同的团队开发,最终结合。前两点有点像和商智共建)
3、松耦合代码(都独立开发了,代码耦合就不高了)
4、增量迁移(维护老项目的时候,新增功能可以逐步迁移到新技术)
微前端的几种实现方案
1、自由组织模式:自己搞、不依赖任何框架(使用:Systemjs模块化)注意约定代码、第三方依赖处理问题
2、基座模式:容器应用框架(基座) + 配置化,实现多应用可插拔。(框架:Single-spa)(成熟方案——乾坤:基于single-spa)【目前应用最多】
3、去中心模式:脱离基座、独立应用间共享模块,与基座模式有出入(使用:webpack5新增的“模块联邦” Module Federation)【未来可期,推荐】
外链:
SingleSpa:https://github.com/CanopyTax/single-spa
乾坤:https://github.com/umijs/qiankun
讲解文章:https://www.cnblogs.com/sexintercourse/p/14772762.html