微前端为什么舍弃了 iframe

如果不考虑体验问题,iframe 是最完美的微前端解决方案。

但着产品体验的需求增强,iframe 又带来了一些不好的体验。

  1. url 不同步。浏览器刷新 iframe url 状态丢失、后退前进按钮无法使用。
  2. UI 不同步,DOM 结构不共享。想象一下屏幕右下角 1/4 的 iframe 里来一个带遮罩层的弹框,同时我们要求这个弹框要浏览器居中显示,还要浏览器 resize 时自动居中..
  3. 全局上下文完全隔离,内存变量不共享。iframe 内外系统的通信、数据同步等需求,主应用的 cookie 要透传到根域名都不同的子应用中实现免登效果。
  4. 慢。每次子应用进入都是一次浏览器上下文重建、资源重新加载的过程。
  • 问题①比较好解决
  • 问题④我们可以睁一只眼闭一只眼,
  • 问题③我们则很难解决
  • 问题④我们可能无法解决,

而这些无法解决的问题恰恰又会给产品带来非常严重的体验问题, 导致我们将舍弃 iframe 方案。

微前端的核心价值

微前端的核心价值在于 “技术栈无关”,这才是它诞生的理由。

微前端的使命我认为是:「让天下没有短命的控制台」。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注