将多个独立的系统,通过统一的入口提供给用户使用的聚合系统 。而开发,测试,上线,都是子系统自行研发,测试 ,上线。
微前端的特点
- 代码库更小,可以将系统拆分成多个子系统。
- 独立部署,子系统堵路部署,没有技术栈限制
- 无需重新开发当前项目,可以直接集成
微前端的不足
- 开发中
- 需要运行多个子系统才能开发和调试(至少是base系统和业务系统)
- 多个系统之间的约定,已经架构设计
- 性能问题(单页面系统=>ios, 微架构=> Android)
- 生产环境
- 多个系统之间的版本控制(业务流程可能会出现耦合的情况)
- 浏览器会加载多个框架代码(子系统采用不同的技术框架,如vue, react, 以及UI框架)
- 多个系统之间通信复杂 ,数据共享操作很繁琐。
目前主流的single-spa框架
- single-spa 社区公认的主流方案,可以基于它做二次开发
- qiankun:基于 single-spa 封装,增加 umi 特色,增加沙箱机制(JS、ShadowDOM 等)
- icestark:类似于 single-spa 实现,React 技术栈友好,阿里的另一个轮子
- Micro-Frontends:类似于 single-spa 实现,React 技术栈友好,阿里的另一个轮子
关于是否使用微前端架构的思考
- 系统是否臃肿,开发,构建性能很差,需要重构(自虐),功能拆分
- 多个系统,需要集成到一起,使用统一入口提供给用户使用
- 能不能推动整个项目的规划和落实(多个系统配合 === 开发的噩梦, 流程失控)