为什么要用微前端?
拆分巨型应用,使应用方便迭代更新
兼容历史应用,实现增量开发
特点:
- 独立部署
- 增量迁移
- 团队自治
- 松耦合代码
优点:
- 通过路由进行跨应用程序通信
- 解决了大型项目如何迭代的问题
- 解决了多团队技术栈不同的问题,实现react和Vue等框架整合
实现方式:
- NPM式:子工程以NPM包的形式发布源码;打包构建发布还是由基座工程管理,打包时集成。
- iframe式:子工程可以使用不同技术栈;子工程之间完全独立,无任何依赖;基座工程和子工程需要建立通信机制;无单页应用体验;路由地址管理困难。
- 通用中心路由基座式:子工程可以使用不同技术栈;子工程之间完全独立,无任何依赖;统一由基座工程进行管理,按照DOM节点的注册、挂载、卸载来完成。
- single-spa:社区公认的主流方案,可以基于它做二次开发
- qiankun:基于 single-spa 封装,增加 umi 特色,增加沙箱机制(JS、ShadowDOM 等)
- icestark:类似于 single-spa 实现,React 技术栈友好,阿里的另一个轮子