当一个前端对于一个团队来说太大时,微前端提供了一条前进的道路。
微前端架构将微服务原理应用于前端:独立开发、测试和部署的前端模块组成单个统一的应用程序。根据 2025 ThoughtWorks 技术雷达,微前端已从试用状态转变为采用状态,拥有 50 名或更多前端开发人员的组织中有 34% 积极使用或试点该方法。 Spotify、IKEA 和 DAZN 等公司已经公开分享了他们的微前端成功案例,表明该模式在大规模上有效。
在 x13apps,我们为拥有大型代码库和多个开发团队的客户实施微前端架构。以下是何时以及如何有效地采用这种模式。
当微前端有意义时
微前端并不适合每个项目——它们会增加有意义的开销。它们在以下情况下会增加价值:多个团队需要独立地处理同一个应用程序而不互相干扰,应用程序的不同部分有不同的技术要求或升级节奏,代码库已经变得太大而单个团队无法有效管理,或者您需要从遗留前端增量迁移而不需要完全重写。如果您的前端团队少于三个,则开销可能会超过收益。
表明微前端的常见症状可能会有所帮助:部署瓶颈(其中一个团队的更改会阻止所有部署)、同一代码库中工作的团队之间的合并冲突、由于单体应用将您与旧技术联系在一起而无法采用新框架,以及由于代码库大小而导致开发人员入职需要数周时间。据 ThoughtWorks 称,与单一前端方法相比,使用微前端的团队报告功能交付速度提高了 40%,跨团队协调开销减少了 60%。
实施模式和技术选择
存在三种主要的构图模式。通过模块联合 (Webpack 5) 的构建时组合在构建时共享代码,允许共享依赖项,但需要跨团队协调构建。服务器端组合(Edge Side Includes,Zalando 定制)在服务器上组装页面,提供最快的交互时间,但需要服务器基础设施。客户端组合(运行时的 single-spa、qiankun 或模块联合)提供了最大的灵活性,但可能会增加 JavaScript 包的大小和复杂性。
模块联合在 Webpack 5 中引入,现在由 Rspack 和 Vite 通过插件支持,已成为主流方法。它允许微前端在运行时共享依赖项,通过避免重复的库来减少总包大小。每个微前端都是一个单独的构建过程,生成自己的包,独立部署。主机应用程序(shell)加载并编排它们。这种方法使真正独立的团队能够拥有自己的发布周期和技术选择。
成功的治理和共同标准
如果没有治理,微前端会造成不一致,从而降低用户体验。建立共享标准:具有共享组件的设计系统(通过 Storybook 或类似工具)、团队之间的 API 契约测试以防止集成破坏、一致的路由约定、标准化的错误处理模式以及每个微前端的性能预算。 Bit、Nx 或 Turborepo 等工具可帮助管理共享依赖项并跨多个前端项目构建编排。
定义与业务领域而不是技术层一致的清晰的所有权边界。每个微前端应该对应一个业务领域(产品目录、结帐、用户配置文件、搜索)而不是技术问题。这种一致性(称为垂直切片)让每个团队了解他们拥有的业务领域并独立交付完整的用户价值。在 x13apps,我们构建了可根据您的业务和团队结构进行扩展的前端解决方案。有关前端架构决策的更多信息,请阅读我们的JavaScript 框架比较。