微前端作为一种方法论,通过将前端应用分解为多个可独立开发、部署和维护的小型前端应用,实现了前端开发的模块化、自治化,从而提高了开发效率、降低了维护成本,并促进了技术栈的多样性与创新。
一、主流微前端对比
目前有比较多的微前端方案,包括micro-app
、qiankun
、single-spa
、wujie
、iframe
等,各方案各有优缺点,以下就简单对比一下前三个。
名称 | micro-app | qiankun | single-spa |
---|---|---|---|
渲染原理 | CustomElement | 路由监听+手动渲染 | 基于路由监听 |
JS沙箱 | √ | √ | × |
样式隔离 | √ | √ | × |
shadowDom | √ | √ | × |
预加载 | √ | √ | × |
元素隔离 | √ | × | × |
插件系统 | √ | × | × |
接入成本 | 低 | 中 | 高 |
二、MicroApp简介
micro-app
是由京东前端团队推出的一款微前端框架,它借鉴了WebComponent的思想,通过js沙箱
、样式隔离
、元素隔离
、路由隔离
模拟实现了ShadowDom的隔离特性,并结合CustomElement将微前端封装成一个类WebComponent组件,从而实现微前端的组件化渲染,旨在降低上手难度、提升工作效率。
三、快速上手
- 安装依赖
npm i @micro-zoe/micro-app --save
- 初始化 micro-app
import microApp from '@micro-zoe/micro-app'
microApp start()
- 嵌入子应用
<micro-app name='child-app' url='http://localhost:8080/'></micro-app>
四、总结
从上文可看出,对已有项目接入micro-app
,侵入性非常小,接入成本低,只需几行代码即可。
在实际项目应用场景中,还需根据团队以及项目情况进行选型,不仅要考虑以上各方案优劣势,还需参考各微前端框架的开发社区活跃度,以便能在遇到难题时,能快速找到解决方案。