主流微前端框架与方案总览

微前端(Micro Frontends) 是一种将大型前端应用拆分成多个独立、可独立开发与部署的小型前端应用的架构模式。每个子应用可以使用自己的技术栈、独立发布、独立运行,最后通过"基座(主应用)"进行整合。

下面是当前主流、生产级可用的 微前端框架/方案总结 ------ 可以帮你快速选型。

一、主流微前端框架与方案总览

微前端框架 特点 推荐场景
Qiankun(乾坤) 基于 single-spa 封装,国内最广泛使用;支持 Vue/React/Angular 后台管理系统、B 端中后台大型项目
single-spa 微前端鼻祖,机制最基础 自定义能力强,对架构能力要求高
Module Federation(Webpack 5) 官方能力,真正的"运行时共享模块" 跨团队共享组件/业务模块
Web Components + 自研基座 零依赖、跨技术栈完全独立 长期架构、对性能极高要求
Wujie(无界) 淘系方案,沙箱隔离强、性能好 多团队协作、大型多系统融合
ICE MicroApp(阿里飞冰) 阿里开源,API 简单、文档清晰 需要快速集成的企业级系统
EMP(微模块化) Module Federation 的工程化套件 多仓库模块联邦共享

二、各方案详细说明


1. Qiankun(乾坤)------国内使用最多的微前端框架

🔧 特点:

  • 基于 single-spa,使用更简单

  • JS 沙箱 / CSS 隔离完善

  • 支持 Vue、React、Angular 等多个技术栈

  • 社区成熟,文档齐全

👍 优势:

  • 上手难度低

  • 适合中后台系统接入

  • 独立部署子应用

👎 缺点:

  • 运行时加载方式,首屏性能比不上联邦模块

2. Module Federation(Webpack 5)------模块级微前端

🔧 特点:

  • Webpack 官方提供的模块共享机制

  • 支持"运行时共享模块"

  • 允许 A 应用动态加载 B 应用的模块/组件

👍 优势:

  • 性能最好(不需要 iframe/沙箱)

  • 实现真正的"跨应用共享组件库"

👎 缺点:

  • 仅适合 Webpack 工程体系

  • 架构复杂度较高


3. single-spa ------ 微前端原教旨主义

🔧 特点:

  • 最原始的微前端方案

  • 所有机制都要你自己实现(路由、加载、基座等)

👍 优势:

  • 自由度最高

👎 缺点:

  • 除非需要 DIY,否则不推荐直接使用

4. Wujie(无界)------淘宝大型微前端解决方案

🔧 特点:

  • 更强的沙箱隔离能力(快 10 倍)

  • 支持 keep-alive、保活子应用

  • 支持 iframe + webcomponent 混合模式

👍 优势:

  • 大规模 B 端场景表现超好

  • 切子应用不刷新状态

  • 功能比 qiankun 更强

👎 缺点:

  • 社区相比乾坤小一点

5. ICE MicroApp(飞冰微前端)

🔧 特点:

  • API 更简单

  • 基于 webcomponent 沙箱隔离

  • 阿里体系很多项目在用

👍 优势:

  • 易用性最高之一

  • 尤其适合 React/Vue 企业级后台


6. Web Components 自研微前端

👍 优势:

  • 完全跨技术栈

  • 不依赖任何框架

  • 最轻量、最标准化

👎 缺点:

  • 要自己搭沙箱、通信机制

  • 工作量大

适合超大型平台(如京东后台体系)。


三、真实项目选型建议(结合你的情况)

如果使用 Vue 3+ 中后台管理系统 + 多团队协作 + 需要独立部署

==> 推荐优先选下面两个:

推荐 1:Qiankun(乾坤)

✔ 文档最全、接入最简单

✔ Vue 集成度最好

✔ 支持你的 B 端业务场景

✔ Vue2 / Vue3 都兼容

推荐 2:Wujie(无界)

✔ 性能更好

✔ 沙箱更强

✔ 子应用支持保活

如果你未来项目规模会变大,建议优先考虑 Wujie

微前端框架是否使用 iframe

微前端框架 是否使用 iframe 说明
Qiankun(乾坤) ❌ 不使用 默认基于 import-html-entry + 沙箱,不用 iframe
single-spa ❌ 不使用 原生方案,不包含 iframe
Wujie(无界) 可选:默认不用,但内部可混合 iframe 技术 支持"iframe 隔离模式",提升隔离度
Module Federation(Webpack 5) ❌ 不使用 直接模块级共享,不需要 iframe
ICE MicroApp(阿里飞冰) ❌ 不使用 基于 Web Components,不用 iframe
EMP(模块联邦工程化) ❌ 不使用 本质是 Module Federation,不用 iframe
Web Components 自研方案 ❌ 不使用 靠浏览器原生能力隔离,不需要 iframe

📝 详细解释


1. Qiankun --- 不使用 iframe

  • 通过动态加载 HTML/JS/CSS + 沙箱(Proxy)

  • 完全不用 iframe

👉 属于"纯运行时微前端"方案


2. single-spa --- 不使用 iframe

  • single-spa 是机制框架,不提供 iframe

  • 所有隔离要靠子应用自己实现


3. Wujie(无界)--- ✔ 可选使用 iframe

Wujie 是唯一支持 iframe + 非 iframe 混合模式 的微前端框架。

  • 默认是"JS 沙箱 + DOM 快照"

  • 可以配置成 iframe 模式以获得 100% 隔离

▶ 示例

new WujieApp({ url: "https://subapp.example.com", iframe: true })

👉 最灵活的微前端框架,如果你需要强隔离、避免主子应用污染,可以用 Wujie 的 iframe 模式。


4. Module Federation --- 不使用 iframe

  • 基于 Webpack 5 官方能力:模块运行时共享

  • 不使用 iframe

  • 性能最好、隔离最弱


5. ICE MicroApp(阿里飞冰)--- 不使用 iframe

  • 基于 Web Components + 沙箱

  • 不依赖 iframe


6. EMP(模块联邦工程化)--- 不使用 iframe

  • 本质就是 Module Federation 的工程封装

7. Web Components 微前端(自研)--- 不使用 iframe

  • 完全使用浏览器 Shadow DOM、CustomElement 实现隔离

  • 不使用 iframe


🎯 总结一句话

只有 Wujie(无界)支持"可选 iframe 模式"。
其他所有微前端框架默认都不使用 iframe。

|----------------------------|-----------------|
| |
| 沙箱隔离 | ❌ 不通过 iframe 实现 |
| 特殊模式(如 manual sandbox) | ❌ 仍然不用 |
| 你自己手动配置 iframe | ✔ 可以用,但不是官方默认 |


❗为什么不用 iframe?

因为 iframe 有严重问题:

  • 无法共享路由(路由切换需要跨 iframe 通信)

  • 样式无法共享

  • 全局上下文隔离太彻底,通信复杂

  • 每次进入子应用都刷新,体验差

相关推荐
大布布将军1 天前
一种名为“Webpack 配置工程师”的已故职业—— Vite 与“零配置”的快乐
前端·javascript·学习·程序人生·webpack·前端框架·学习方法
rockmelodies2 天前
CVE-2025-55182:React Server Components 断点跟踪
前端·react.js·前端框架
光影少年2 天前
react怎么实现响应式?
前端·react.js·前端框架
by__csdn2 天前
Vue.js 生命周期全解析:从创建到销毁的完整指南
前端·javascript·vue.js·前端框架·ecmascript·css3·html5
黛色正浓2 天前
【React】极客园案例实践-编辑文章模块和项目打包
前端·react.js·前端框架
我命由我123452 天前
微信小程序 - 页面返回并传递数据(使用事件通道、操作页面栈)
开发语言·前端·javascript·微信小程序·小程序·前端框架·js
老前端的功夫2 天前
首屏优化深度解析:从加载性能到用户体验的全面优化
前端·javascript·vue.js·架构·前端框架·ux
Hilaku2 天前
检测开发者工具是否打开?这几种方法让黑客无处遁形🤣
前端·javascript·前端框架
程思扬2 天前
你的模型你做主:Fooocus + cpolar,安全远程生成 AI 图像
人工智能·笔记·tcp/ip·前端框架·figma·蓝湖