微前端的概念是由ThoughtWorks在2016年提出的,它借鉴了微服务的架构理念,核心在于将一个庞大的前端应用拆分成多个独立灵活的小型应用,每个应用都可以独立开发、独立运行、独立部署,再将这些小型应用融合为一个完整的应用,或者将原本运行已久、没有关联的几个应用融合为一个应用。微前端既可以将多个项目融合为一,又可以减少项目之间的耦合,提升项目扩展性,相比一整块的前端仓库,微前端架构下的前端仓库倾向于更小更灵活。
它主要解决了两个问题:
- 1、随着项目迭代应用越来越庞大,难以维护。
- 2、跨团队或跨部门协作开发项目导致效率低下的问题。
micro-app
是由京东前端团队推出的一款微前端框架,它借鉴了WebComponent的思想,通过js沙箱
、样式隔离
、元素隔离
、路由隔离
模拟实现了ShadowDom的隔离特性,并结合CustomElement将微前端封装成一个类WebComponent组件,从而实现微前端的组件化渲染,旨在降低上手难度、提升工作效率。
micro-app
和技术栈无关,也不和业务绑定,可以用于任何前端框架。
我们将所有功能都封装到一个类WebComponent组件中,从而实现在基座应用中嵌入一行代码即可渲染一个微前端应用。
micro-app
提供了js沙箱
、样式隔离
、元素隔离
、路由隔离
、预加载
、数据通信
等一系列完善的功能。
为了保证各个业务之间独立开发、独立部署的能力,micro-app
做了诸多兼容,在任何前端框架中都可以正常运行。