微前端通过拆分前端应用实现独立开发部署,常见方案包括基于路由的整合、Web Components封装、Module Federation动态共享及iframe嵌入,各方案在隔离性、通信与技术栈支持上权衡,需根据团队规模、部署频率与业务需求选择。

微前端是一种将多个独立的前端应用整合为一个整体用户体验的架构方式,适合大型团队协作或系统逐步迁移的场景。它不是单一的技术,而是一种设计思想:把前端应用拆分成更小、更独立的部分,每个部分可独立开发、部署和运行。
基于路由的微前端方案
这是最直观的实现方式,通过主应用根据当前 URL 路由决定加载哪个子应用。
说明:主应用充当容器,监听路由变化,动态加载对应子应用的资源(JS、CSS),并将其挂载到指定 DOM 节点。
- 子应用可以使用不同技术栈(React、Vue、Angular)
- 主应用需维护一份路由映射表,例如:"/user" -> "https://user-app.com"
- 实现简单,适合模块边界清晰的系统
常见工具:single-spa 是该方案的核心库,负责生命周期管理与应用注册。
立即学习“前端免费学习笔记(深入)”;
Web Components 封装子应用
利用浏览器原生的 Web Components 技术封装子应用,实现真正的技术隔离。
说明:每个子应用打包为自定义元素(Custom Element),主应用像使用普通 HTML 标签一样引入。
- 天然样式和脚本隔离,避免冲突
- 依赖浏览器支持,旧版本需引入 polyfill
- 适合对隔离性要求高的场景
建议结合构建工具(如 Vite 或 Webpack)输出为 Custom Element 模式。
Module Federation(Webpack 5)
这是目前最热门的微前端实现方式,允许 JavaScript 应用在运行时动态共享代码。
说明:主应用通过 Module Federation 配置远程加载子应用的模块,实现“按需加载”。
- 支持跨应用组件、状态、工具函数的共享
- 构建时明确依赖关系,运行时高效加载
- 需统一构建系统(基于 Webpack 5)
典型配置:主应用设为 host,子应用设为 remote,通过 remotes 字段声明远程模块地址。
iframe 嵌入方案
最简单的隔离方式,通过 iframe 加载子应用页面。
说明:每个子应用独立运行在自己的上下文中,完全隔离。
- 实现成本低,兼容性好
- 通信困难,SEO 不友好,无法共享状态
- 适合嵌入第三方系统或沙箱环境
优化建议:可通过 postMessage 实现基础通信,配合高度自适应等脚本提升体验。
基本上就这些。选择哪种方案取决于团队规模、技术栈差异、部署频率和隔离需求。没有万能解,关键是匹配业务节奏。










