浅谈微前端

187 阅读2分钟

微前端(Micro-Frontends)是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。各个前端应用还可以独立运行、独立开发、独立部署。微前端不是单纯的前端框架或者工具,而是一套架构体系

价值

  • 技术栈无关
  • 解耦,方便维护,独立开发,独立部署提高开发效率(一个项目太臃肿跑起来慢)
  • 增量升级

文章推荐

  1. juejin.cn/post/684490…
  2. my.oschina.net/u/568478/bl…
  3. juejin.cn/post/688521…

已有实现方案缺点

  • nginx路由 页面会刷新
  • iframe 加载慢、通信难、双滚动条等样式问题
  • npm 更新后需要引用方重新部署才能生效,难维护、技术栈耦合
  • single-spa js、css污染、JS Entry限制了打包方式、通信
  • qiankun

主流框架实现

single-spa

  • 加载微应用(加载方法还是用户自己提供的)
  • 维护微应用状态(初始化、挂载、卸载)。 详情请看:juejin.cn/post/703738…

qiankun

  • 基于 single-spa 封装,提供了更加开箱即用的 API。
  • 📱 技术栈无关,任意技术栈的应用均可 使用/接入,不论是 React/Vue/Angular/JQuery 还是其他等框架。
  • 💪 HTML Entry 接入方式,让你接入微应用像使用 iframe 一样简单。
  • 🛡​ 样式隔离,确保微应用之间样式互相不干扰。
  • 🧳 JS 沙箱,确保微应用之间 全局变量/事件 不冲突。
  • ⚡️ 资源预加载,在浏览器空闲时间预加载未打开的微应用资源,加速微应用打开速度。
  • 🔌 umi 插件,提供了 @umijs/plugin-qiankun 供 umi 应用一键切换成微前端架构系统。 详情请看:juejin.cn/post/703968…

其他实现方案