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

微前端(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 通信)

  • 样式无法共享

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

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

相关推荐
光影少年11 小时前
react状态管理都有哪些及优缺点和应用场景
前端·react.js·前端框架
梦帮科技14 小时前
Node.js配置生成器CLI工具开发实战
前端·人工智能·windows·前端框架·node.js·json
C澒15 小时前
前端整洁架构(Clean Architecture)实战解析:从理论到 Todo 项目落地
前端·架构·系统架构·前端框架
C澒15 小时前
Remesh 框架详解:基于 CQRS 的前端领域驱动设计方案
前端·架构·前端框架·状态模式
C澒16 小时前
前端分层架构实战:DDD 与 Clean Architecture 在大型业务系统中的落地路径与项目实践
前端·架构·系统架构·前端框架
晚霞的不甘18 小时前
守护智能边界:CANN 的 AI 安全机制深度解析
人工智能·安全·语言模型·自然语言处理·前端框架
AAA阿giao1 天前
从零拆解一个 React + TypeScript 的 TodoList:模块化、数据流与工程实践
前端·react.js·ui·typescript·前端框架
晚霞的不甘1 天前
Flutter for OpenHarmony 构建简洁高效的待办事项应用 实战解析
flutter·ui·前端框架·交互·鸿蒙
百锦再1 天前
Vue高阶知识:利用 defineModel 特性开发搜索组件组合
前端·vue.js·学习·flutter·typescript·前端框架
这儿有一堆花1 天前
Vue 是什么:一套为「真实业务」而生的前端框架
前端·vue.js·前端框架