微前端架构

微前端架构

微前端是一种前端架构。

类似于后端的微服务架构,微前端就是将传统的SPA拆分为多个独立的前端模块,每个模块内可以使用不同的技术栈,多个模块可以由多个团队独立开发、测试、部署。

微前端的核心思想

  • 模块化:每个微前端模块都是独立的,可以使用自己的技术栈、依赖、部署流程。

  • 独立性:不同的微前端模块可以由多个团队各自独立开发,互不干扰。

  • 灵活集成:最终可以由多个模块集成到一个页面上。

  • 隔离性:每个模块避免相互依赖。

微前端的优势

  • 模块可以独立开发和部署:各个团队可以独立开发和部署不同的微前端模块。

  • 每个模块技术栈各自独立:不同的微前端模块可以选择不同的技术栈。

  • 可渐进式升级:可以渐进的重写原有代码。

  • 可维护性高:微前端架构使得整个系统易于维护。

微前端的实现方式

iframe

iframe嵌入页面,每个页面是一个单独的应用。这个方案性能很差,iframe之间很难通信。

Web Components

Web Components是浏览器原生支持的组件方案,允许创建自定义元素。

Module Federation

webpack5引入了Module Federation来做微前端。

Module Federation允许不同的前端模块动态加载其他模块的代码。

基于路由分发

可以使用不同的路由区分不同的微前端模块,基于路由分发请求到微前端模块。

Single-SPA

Single-SPA框架允许多个微前端同时在一个页面运行,支持三大框架。

Single-SPA是将不同的微前端应用通过路由进行管理(先注册所有应用的路由,根据URL匹配应用),使得每个微前端应用可以独立加载、渲染、卸载。

Single-SPA支持React、Vue、Angular。

qiankun

qiankun基于Single-SPA做了优化,支持在同一个页面中挂载多个微前端应用,提供了简单地API和开箱即用的方案。

实际开发中一般选择qiankun做微前端。

评论