# 介绍

微前端在 2016 年 ThoughtWorks Technology Radar 正式被提出。微服务这个被广泛应用于服务端的技术范式扩展到前端领域。现代的前端应用的发展趋势正在变得越来越富功能化,富交互化,也就是 SPA 应用;这样越来越复杂的单体前端应用,背后的后端应用则是数量庞大的微服务集群。

微前端是一种多个团队通过独立发布功能的方式来共同构建现代化 web 应用的技术手段及方法策略。通俗来说,就是在一个 web 应用中可以独立的运行另一个 web 应用。

# 产生背景

现代复杂的 web app 或者网站,通常由很多相对独立的功能模块组合而成,而对这些模块负责的应该是相互独立的多个团队。这些独立的团队由于专业分工不同,会负责着特定的业务领域,以及完成特定的开发任务。这样的团队,通常在人员组成方面囊括了从前端开发到服务端开发,从 UI 实现到数据库设计这样端到端的跨职能人员构成。

微前端与自包含系统(Self-contained System)概念一脉相承。微前端之类的思路,会被称为面向垂直划分系统的前端集成。

# 开发模式

微前端是一种多个团队通过独立发布功能的方式来共同构建现代化 web 应用的技术手段及方法策略。

微前端的核心目标是将巨石应用拆解成若干可以自治的松耦合微应用,这样才能确保微应用真正具备独立开发、独立运行的能力。

# 核心价值

  • 技术栈无关:主框架不限制接入应用的技术栈,微应用具备完全自主权。
  • 独立开发、独立部署:微应用仓库独立,前后端可独立开发,部署完成后主框架自动完成同步更新。
  • 增量升级:在面对各种复杂场景时,我们通常很难对一个已经存在的系统做全量的技术栈升级或重构,而微前端是一种非常好的实施渐进式重构的手段和策略。
  • 独立运行时:每个微应用之间状态隔离,运行时状态不共享。

微前端架构旨在解决单体应用在一个相对长的时间跨度下,由于参与的人员、团队的增多、变迁,从一个普通应用演变成一个巨石应用(Frontend Monolith)后,随之而来的应用不可维护的问题。这类问题在企业级 Web 应用中尤其常见。

# 使用场景

  • 比如制作一个企业管理平台,把已有的采购系统和财务系统统一接入这个平台;

  • 比如有一个巨大的应用,为了降低开发和维护成本,分拆成多个小应用进行开发和部署,然后用一个平台将这些小应用集成起来;

  • 又比如一个应用使用 vue 框架开发,其中有一个比较独立的模块,开发者想尝试使用 react 框架来开发,等模块单独开发部署完,再把这个模块应用接回去

提示

摘选自《百度百科》、《无界官网》、《乾坤官网》

上次更新: a year ago