微前端
微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。各个前端应用还可以独立运行、独立开发、独立部署。微前端不是单纯的前端框架或者工具,而是一套架构体系。
1. iframe
介绍
HTML 内联框架元素 (<iframe>) 表示嵌套的browsing context。它能够将另一个 HTML 页面嵌入到当前页面中。
上手操作
<iframe src=""></iframe>
反馈
使用简单,js,css物理隔离,不怕污染,性能上初次加载缓慢,安全方面差一些
2. 乾坤框架 github 14.9k
介绍
qiankun 是一个基于 single-spa 的微前端实现库,旨在帮助大家能更简单、无痛的构建一个生产可用微前端架构系统。
上手操作
- 主应用安装 qiankun
- 在主应用中注册微应用
- 微应用导出相应的生命周期钩子
- 微应用配置微应用的打包工具
常见问题
反馈
- 适用于对微应用细节把控
- 适配成本较高,最好是内部项目联调使用
实际操作
待验证
3. micro-app github 4.7k
介绍
micro-app并没有沿袭single-spa的思路,而是借鉴了WebComponent的思想,通过CustomElement结合自定义的ShadowDom,将微前端封装成一个类WebComponent组件,从而实现微前端的组件化渲染。并且由于自定义ShadowDom的隔离特性,micro-app不需要像single-spa和qiankun一样要求子应用修改渲染逻辑并暴露出方法,也不需要修改webpack配置,是目前市面上接入微前端成本最低的方案。
上手操作
- 主应用安装依赖,配置
- 组件使用
- 子应用设置跨域
常见问题
反馈
- 封装到一个类WebComponent组件中,从而实现在基座应用中嵌入一行代码即可渲染一个微前端应用,相比较乾坤框架,上手简单
实际操作
待验证
4. 无界 github 3.3k
介绍
无界微前端方案基于 WebComponent 容器 + iframe 沙箱
其中保活模式、重建模式子应用无需做任何改造工作,单例模式需要做生命周期改造
上手操作
- 安装依赖,配置
- 设置子应用(非必填)生命周期
反馈
上手容易,继承了iframe 优缺点
实际操作
待验证
微前端框架示例汇总
总结
目前主流微前端框架中,常见问题,对子应用的干扰或多或少,即使已有问题解决,也是需要子应用进行修改。这些框架还存在的问题有:下载链接,css样式隔离存在一定问题,请求资源错误......
说实话,作者觉得没有硬性要求,或者非内部项目可联调这种,还是不要碰,iframe 梭哈