一、行业背景与核心概念
1.1 微前端演进史
- 2016年:ThoughtWorks提出微前端概念
- 2018年:Single-SPA成为首个主流解决方案
- 2019年:阿里推出qiankun框架
- 2020年:Webpack5发布Module Federation
- 2022年:无界、MicroApp等国产框架崛起
1.2 核心设计目标
- 🧩 技术栈无关
- 🚀 独立开发部署
- 🛡️ 环境隔离
- 📦 资源按需加载
- 🔗 应用间通信
二、主流框架全景对比
2.1 核心框架矩阵
| 特性 |
Qiankun |
Micro-App |
无界 |
EMP |
Single-SPA |
| 母公司 |
蚂蚁集团 |
京东 |
腾讯 |
欢聚时代 |
无 |
| 首次发布 |
2019.08 |
2021.04 |
2022.03 |
2020.11 |
2018.01 |
| 核心技术 |
Single-SPA增强 |
WebComponents |
Iframe+Proxy |
Module Federation |
路由劫持+生命周期 |
| 沙箱机制 |
Proxy+快照 |
ShadowDOM |
Iframe原生隔离 |
无 |
无 |
| 通信方式 |
GlobalState |
CustomEvent |
postMessage |
Redux共享 |
自定义事件 |
| 路由方案 |
主控路由 |
自主路由 |
独立路由 |
联邦路由 |
主控路由 |
| 打包工具 |
无要求 |
无要求 |
Vite优先 |
Webpack5 |
无要求 |
| 子应用类型 |
任意 |
任意 |
任意 |
Webpack模块 |
任意 |
2.2 技术架构对比图
| 框架 |
技术架构 |
优势 |
劣势 |
| Qiankun |
基于Single-SPA和Proxy沙箱 |
成熟稳定,生态完善 |
沙箱性能稍逊于原生隔离 |
| Micro-App |
WebComponents+Shadow DOM |
原生隔离,性能优异 |
兼容性依赖浏览器支持 |
| 无界 |
Iframe+Proxy沙箱 |
隔离性强,安全性高 |
Iframe性能开销较大 |
| EMP |
Module Federation |
与Webpack深度集成,灵活高效 |
依赖Webpack生态 |
| Single-SPA |
路由劫持+生命周期 |
简单轻量,社区支持广泛 |
缺乏内置沙箱机制 |
三、核心实现技术解析
3.1 JS沙箱演进史
class LegacySandbox {
constructor() {
this.modifiedProps = new Map();
this.originalProps = new Map();
}
}
class ProxySandbox {
constructor() {
const fakeWindow = Object.create(null);
this.proxy = new Proxy(fakeWindow, {
get: (target, key) => target[key] || window[key],
set: (target, key, value)