web component 在中台的实践与分享
admin
2023-09-30 17:22:42
0

web 中大多数业务场景都存在不同项目应用共同使用同一个 web 组件的情况,特别是中后台业务,很容易就有十几个平台顶着同样的 header、footer、导航组件。 统一的 ui 风格和操作习惯对用户显然是更友好,不过这对开发和维护来说会有点麻烦。

目前主流的解决方案是将公共组件封装成独立的 npm 包,然后各项目引入使用。这也是我们之前采用的方案。

更新流程大致就是:




部署之前,通常还需要经过测试人员测试

痛点及优化方案

npm 库的方案主要有 2 点麻烦:

  1. 不同的平台技术栈可能不同,公共组件兼容麻烦。
  2. 需要编译后才生效,那十多个平台,要走十多次发布流程,低效且痛苦。

其中第 2 条最为头疼,想象一下,你给 footer 改个样式换几个字,都要所有平台走一遍构建部署流程,简直要疯。

我们希望可以针对部分组件,做到【免构建、热更新】

为了更好解决这个问题,我针对市面常用方案做了尝试和对比:

方案描述框架兼容性改造成本维护成本微前端基于微前端框架实现应用级 web 组件共享,如 qiankun、single-spa 等优秀高成本高成本webpack5 模块联邦基于 webpack5 模块联邦特性,实现应用之间模块互用差中成本中成本web component基于 web components,在各应用动态创建自定义组件优秀低成本低成本

相关内容