微前端是多个独立发布功能的团队一起构建现代化web应用程序的技术、策略和方法,将大而可怕的事物分割成更小、更易于管理的部分,然后明确它们之间的依赖关系。应用开发的技术选择、代码库、团队以及发布过程都能够相互独立地操作,而不需要过度的协调。
微前端架构是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个能够独立开发、测试、部署的小型前端应用,而在用户看来仍然是内聚的单个产品。
使用微前端架构能够拆分巨型应用,使应用方便迭代更新,兼容历史应用,实现增量开发。通过路由进行跨应用程序通信,解决了大型项目如何迭代的问题,解决了多团队技术栈不同的问题,实现React和Vue等框架整合。微前端架构的特点有:
- 简单、松耦合的代码库:微前端架构下的代码库倾向于更小/简单、更容易开发。避免模块间不合理的隐式耦合造成的复杂度上升。通过界定清晰的应用边界来降低意外耦合的可能性,增加子应用间逻辑耦合的成本,促使开发者明确数据和事件在应用程序中的流向。
- 增量升级:在面对各种复杂场景时,通常很难对一个已经存在的系统做全量的技术栈升级或重构,而微前端是一种非常好的实施渐进式重构的手段和策略。因为是运行时加载,可以在没有重建的情况下添加,删除或替换前端的各个部分。
- 独立部署:每个微前端都具备有自己的持续交付流水线(包括构建、测试并部署到生产环境),并且能独立部署,不必过多考虑其它代码库和交付流水线的当前状态。
- 团队自治:各个团队独立开发,相互不影响,独立开发、独立部署,微应用仓库独立,前后端可独立开发,部署完成后主框架自动完成同步更新。