# learn-micro-front-end **Repository Path**: gt6550/learn-micro-front-end ## Basic Information - **Project Name**: learn-micro-front-end - **Description**: 系统学习微前端 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-05-29 - **Last Updated**: 2026-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 微前端系统学习计划 --- ## 第一阶段:概念与思想 ### 1. 理论基础 - [x] 1.1 阅读 [Micro Frontends](https://swearer23.github.io/micro-frontends/) 完整文章 - 理解微前端的定义和核心价值 - 记录关键概念:独立部署、技术栈无关、团队自治 - [x] 1.2 阅读 [Martin Fowler - Micro Frontends](https://martinfowler.com/articles/micro-frontends.html) - 这是上文的原始出处,内容更详细 - 重点关注:Benefits、Integration approaches、Styling - [x] 1.3 理解微前端解决的核心问题 - 巨石应用的痛点 - 团队协作与独立交付 - 技术栈升级与渐进式迁移 ### 2. 实现方案概览 - [x] 2.1 了解主流实现方案 - iframe 方案:优缺点分析 - Web Components 方案 - JavaScript Entry 方案 - HTML Entry 方案 - Module Federation 方案 - [x] 2.2 绘制方案对比表格 - 从隔离性、通信、性能、改造成本等维度对比 [微前端方案对比表格](./docs/微前端方案对比表格.md) --- ## 第二阶段:框架学习 ### 3. single-spa(微前端鼻祖) - [x] 3.1 阅读 [single-spa 官方文档](https://single-spa.js.org/docs/getting-started-overview) - 理解 Application、Parcel、Utility 概念 - 理解生命周期:bootstrap、mount、unmount - [x] 3.2 跑通 single-spa 官方示例 - 克隆示例仓库并运行 - 理解注册子应用的方式 ### 4. qiankun(阿里) - [x] 4.1 阅读 [qiankun 官方文档](https://qiankun.umijs.org/zh/guide) - 理解与 single-spa 的关系 - 重点:沙箱机制、样式隔离、应用通信 - [x] 4.2 理解 qiankun 核心原理 - HTML Entry 加载机制 - JS 沙箱实现(Proxy 沙箱 vs 快照沙箱) - CSS 隔离方案 - 推荐文章:搜索 "qiankun 源码解析" - [x] 4.3 动手实践 qiankun - 实现应用间通信 ### 5. micro-app(京东)- 当前项目使用 - [x] 5.1 阅读 [micro-app 官方文档](https://micro-zoe.github.io/micro-app/) - 理解 Web Components 实现原理 - 对比与 qiankun 的差异 - [x] 5.2 深入理解当前项目实现 - 分析 platform-base 基座配置 - 分析 platform-main 子应用改造 - 理解路由、通信、样式隔离的实现 - [x] 5.3 尝试添加一个新的子应用 - 在当前项目中实践 --- ## 第三阶段:原理深入 ### 6. JS 沙箱原理 - [x] 6.1 理解 Proxy 沙箱 - 学习 ES6 Proxy API - 理解如何拦截全局变量访问 - 推荐:手写一个简易 Proxy 沙箱 - [x] 6.2 理解快照沙箱 - 适用于不支持 Proxy 的环境 - 理解 window 快照与恢复机制 - [x] 6.3 对比两种沙箱的优缺点 - 性能、兼容性、多实例支持 ### 7. CSS 隔离原理 - [x] 7.1 理解 Shadow DOM - 学习 Web Components 标准 - 理解样式封装原理 - [x] 7.2 理解 CSS Scoped 方案 - 选择器前缀添加 - 动态样式处理 - [x] 7.3 理解 CSS Modules - 编译时隔离方案 ### 8. 应用通信机制 - [x] 8.1 理解发布订阅模式 - 实现一个简易 EventBus - [x] 8.2 理解 Props 传递 - 基座向子应用传递数据 - [x] 8.3 理解全局状态方案 - 共享状态管理 --- ## 第四阶段:扩展与实践 ### 9. 其他框架了解 - [ ] 9.1 了解 [无界 wujie](https://wujie-micro.github.io/doc/)(腾讯) - iframe + Web Components 方案 - [ ] 9.2 了解 [garfish](https://www.garfishjs.org/)(字节) - [ ] 9.3 了解 [Module Federation](https://webpack.js.org/concepts/module-federation/) - Webpack 5 原生方案 ### 10. 工程化实践 - [x] 10.1 理解微前端部署方案 - 独立部署 vs 统一部署 - Nginx 配置要点 - [ ] 10.2 理解公共依赖处理 - externals 方案 - 共享依赖加载 - [ ] 10.3 理解性能优化 - 预加载策略 - 资源缓存 ### 11. 总结输出 - [x] 11.1 整理学习笔记 - 核心概念总结 - 方案对比表格 - [x] 11.2 绘制微前端架构图 - 当前项目架构图 - 通用微前端架构图 - [x] 11.3 分享或写博客 - 输出是最好的学习 --- ## 学习资源汇总 ### 官方文档 - micro-frontends.org: - single-spa: - qiankun: - micro-app: - wujie: - garfish: ### 推荐文章 - Martin Fowler 微前端: - Module Federation: ### 视频资源 - B 站搜索 "微前端架构" - B 站搜索 "qiankun 源码" ### 源码学习 - qiankun GitHub: - micro-app GitHub: - single-spa GitHub: