*** 微前端是一种类似于 微服务 的架构,是一种由独立交付的 多个前端应用 组成整体的架构风格,将前端应用分解成一些更小、更简单的能够 独立开发、测试、部署 的应用,而对外表现仍是 单个内聚的产品
随着大前端的快速发展 和 SPA 的大规模应用,也带来了新的问题,而这些问题都催化出了 微前端 的概念:
1、项目功能不断增多、体积不断增大(巨石应用),导致打包时间成正比例增长,是否能保证更好的 项目扩展
2、前端技术更新太快,一个项目历经一两年也许就需要进行项目升级,甚至是切换技术栈,但仍需要老项目的代码,是否能进行 新老版本的兼容
3、团队技术栈不一,又需要保证同一项目的开发,是否能保证不同团队的 独立开发
4、SPA 项目的任何变动都需执行完整的打包、部署,是否能保证不同内容 独立部署
技术栈无关
主框架不限制接入子应用的技术栈,微应用具备完全自主权
任何一个子应用不论使用什么技术栈,最终都会被编译为 JavaScript 代码,因此真正在执行时无论基座应用还是子应用都已经是同一种语言形式
独立开发、独立部署
微应用仓库独立,前后端可独立开发,部署完成后主框架自动完成同步更新
子应用本质上就是普遍使用的 spa 单页面应用,因此当然可以拥有独立代码仓库进行关联,可独立发布运行,也可作为子应用运行,只需要做好不同环境的兼容即可
增量升级
在面对各种复杂场景时,通常很难对一个已经存在的系统做全量的技术栈升级或重构,而微前端是一种非常好的实施渐进式重构的手段和策略
子应用能够独立开发部署,自然支持自身应用的功能的独立扩展,又或者是接入新的子应用
独立运行时
每个微应用之间状态隔离,运行时状态不共享
保证多个子应用在基座应用中运行时,自身的状态不受其他子应用的影响