Skip to content

微前端面试题

一、进阶题

1. 什么是微前端?它主要解决什么问题?进阶
2. 微前端和组件化有什么区别?进阶
3. 请比较 qiankun、single-spa、Module Federation 三种方案。进阶
4. 微前端中如何实现样式隔离?各自的优缺点是什么?进阶
5. 微前端中 JS 隔离有哪些方案?沙箱是否能 100% 隔离?进阶
6. 子应用之间如何通信?应该避免什么?进阶
7. 微前端中如何处理公共依赖?进阶
8. 微前端刷新页面 404 是什么原因?如何解决?进阶

二、高级题

9. 你会如何评估一个项目是否需要引入微前端?深入
10. 微前端有哪些常见陷阱?如何避免?深入
11. 请描述 qiankun 的加载和生命周期流程。深入
12. Module Federation 中,host 和 remote 有什么区别?shared 配置有什么用?深入
13. 微前端项目中如何做错误隔离和降级?深入
14. 微前端中如何保证用户体验一致性?深入
15. 如果微前端子应用需要共享状态,你会如何设计?深入

三、架构级题

16. 设计一个支持 10 个团队同时开发的微前端平台,你会做哪些关键决策?基础
17. 微前端和 Monorepo 各适合什么场景?可以同时使用吗?基础
18. 你如何看待 iframe 作为微前端方案?基础
19. 微前端上线后,如何进行性能优化?基础
20. 描述一次你参与或设计的微前端落地经历,遇到了哪些挑战?基础

参考答案(模板):

背景:某中台系统由多个业务线共用,代码库庞大,发布冲突频繁。

方案:

  • 采用 qiankun 搭建基座,按业务域拆分子应用。
  • 主应用统一登录、菜单、路由、主题。
  • 子应用独立仓库、独立构建、独立部署。
  • 公共组件和工具封装成 npm 包。

挑战:

  1. 老应用改造工作量大:通过渐进式迁移,先新功能用微前端,老页面逐步迁移。
  2. 样式冲突:统一使用 CSS Modules 和命名空间。
  3. 公共依赖版本不一致:约定 React 版本,主应用注入。
  4. 调试困难:完善日志和监控,建立子应用独立运行能力。

成果:发布频率提升,冲突减少,团队并行开发效率提高。

评分维度

  • 有真实项目背景(30%)
  • 挑战描述具体(30%)
  • 解决方案可落地(40%)

21. 在微前端架构中,主应用应该承担哪些职责?子应用应该承担哪些职责?基础
22. 如果未来浏览器原生支持更强大的应用隔离机制,微前端框架会消失吗?基础

基于 MIT 协议发布