微前端框架探索

111 阅读3分钟

12413311T-0.jpg

微前端

微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。各个前端应用还可以独立运行、独立开发、独立部署。微前端不是单纯的前端框架或者工具,而是一套架构体系。

1. iframe

介绍

HTML 内联框架元素 (<iframe>)  表示嵌套的browsing context。它能够将另一个 HTML 页面嵌入到当前页面中。

上手操作

<iframe src=""></iframe>

反馈

使用简单,js,css物理隔离,不怕污染,性能上初次加载缓慢,安全方面差一些

2. 乾坤框架 github 14.9k

介绍

qiankun 是一个基于 single-spa 的微前端实现库,旨在帮助大家能更简单、无痛的构建一个生产可用微前端架构系统。

上手操作

  1. 主应用安装 qiankun
  2. 在主应用中注册微应用
  3. 微应用导出相应的生命周期钩子
  4. 微应用配置微应用的打包工具

常见问题

链接

反馈

  1. 适用于对微应用细节把控
  2. 适配成本较高,最好是内部项目联调使用

实际操作

待验证

3. micro-app github 4.7k

介绍

micro-app并没有沿袭single-spa的思路,而是借鉴了WebComponent的思想,通过CustomElement结合自定义的ShadowDom,将微前端封装成一个类WebComponent组件,从而实现微前端的组件化渲染。并且由于自定义ShadowDom的隔离特性,micro-app不需要像single-spaqiankun一样要求子应用修改渲染逻辑并暴露出方法,也不需要修改webpack配置,是目前市面上接入微前端成本最低的方案。

上手操作

  1. 主应用安装依赖,配置
  2. 组件使用
  3. 子应用设置跨域

常见问题

链接

反馈

  1. 封装到一个类WebComponent组件中,从而实现在基座应用中嵌入一行代码即可渲染一个微前端应用,相比较乾坤框架,上手简单

实际操作

待验证

4. 无界 github 3.3k

介绍

无界微前端方案基于 WebComponent 容器 + iframe 沙箱

无界有三种运行模式:单例模式保活模式重建模式

其中保活模式重建模式子应用无需做任何改造工作,单例模式需要做生命周期改造

上手操作

  1. 安装依赖,配置
  2. 设置子应用(非必填)生命周期

反馈

上手容易,继承了iframe 优缺点

实际操作

待验证

官方demo

微前端框架示例汇总

github

总结

目前主流微前端框架中,常见问题,对子应用的干扰或多或少,即使已有问题解决,也是需要子应用进行修改。这些框架还存在的问题有:下载链接,css样式隔离存在一定问题,请求资源错误......


说实话,作者觉得没有硬性要求,或者非内部项目可联调这种,还是不要碰,iframe 梭哈

53xJD.gif