标准答案

  1. 微前端适合多个业务团队长期维护同一个大系统,但需要独立发布和技术边界的场景。
  2. 它能把应用拆成主应用和子应用,降低单个仓库、单条流水线和单次发布的耦合。
  3. 常见方案包括 iframe、single-spa/qiankun、Module Federation、Web Components 等。
  4. 代价包括运行时加载复杂、公共依赖重复、样式污染、全局变量冲突、路由和权限协调复杂。
  5. 如果只是页面数量多或想提高性能,微前端不一定是最小成本方案。

题目解析

微前端首先是组织和发布边界方案。一个后台系统如果由多个团队共同开发,所有模块都绑在同一次构建、同一次发布里,协作成本会越来越高,微前端可以把责任和发布节奏拆开。

它不是免费拆分。主应用要负责注册、加载、路由、权限、通信和错误兜底;子应用要处理样式作用域、依赖版本、生命周期和独立部署。线上问题也会从“一个应用坏了”变成“主子应用交界处哪里坏了”。

面试里不要把微前端讲成万能架构。更好的判断是:团队规模、发布独立性、技术栈历史包袱和治理能力是否真的需要它。

代码示例

微前端常见结构是主应用负责壳和治理,子应用负责业务域。

Text
shell app:
  auth, layout, menu, route registry, error boundary

micro apps:
  order app
  finance app
  user app

shared contracts:
  routing, events, permissions, design tokens

常见误区

  • 把微前端当成性能优化手段,忽略它主要解决的是组织和发布耦合。
  • 没有统一依赖、样式、权限和通信约定,拆完后运行时冲突更多。
  • 小团队小系统过早引入微前端,复杂度超过收益。

作者信息