什么的微前端开发见解分析

微前端架构是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。

微服务与微前端,都是希望将某个单一的单体应用,转化为多个可以独立运行、独立开发、独立部署、独立维护的服务或者应用的聚合,从而满足业务快速变化及分布式多团队并行开发的需求。

在某些场景下,微前端也包含了对于系统的纵向切分;即不同的团队会负责系统中某个特性 / 模块,从数据库、服务端到用户界面完整的流线。每个团队会更多地着眼于业务模型与特点。独立并不意味着完全的切割,各个特性 / 模块之间的共现组件可以通过 NPM/Git Submodule 等方式进行协同开发与复用。

微前端的落地,需要考虑到产品研发与发布的完整生命周期,具体而言,我们可能从应用组合、应用隔离、应用协调与治理、开发环境等几个方面进行考虑:

1. 应用组合:

组合时机,在构建时组合,还是在运行时组合

应用路由,如何根据 URL 加载 / 导航到不同的页面,如何根据子应用界面的变化切换 URL

应用加载,确定加载应用的版本,依赖于框架的加载机制,还是采用 AMD 或者 SystemJS 异步加载

2. 应用隔离:

应用容错,某个应用的崩溃不应影响到其他应用或容器应用

样式隔离,避免 CSS 相互污染

DOM 隔离,避免子应用操作非自身作用域内的结点

3. 应用协调与治理:

统一配置与切换,主题,利用 CSS Variables 等方式动态换肤

应用的生命周期,规范化子应用的生命周期,并且在不同生命周期中执行不同的操作

数据共享,子应用间数据共享

服务共享,跨应用数据共享与服务调用

组件共享,可能将某个纯界面组件或者业务组件以插件 (Plugin) 或者部件 (Widget) 的方式共享出去;提供某个计算能力。

4. 开发环境:

跨技术栈支持

统一的构建流程与规范

打桩、埋点与 Hijack

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20190705A06JIJ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券