N年前写的微前端笔记——初探微前端(一)

微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。各个前端应用还可以独立运行、独立开发、独立部署。

1.后端微服务与前端微服务的优势有何相似之处

优势后端微服务前端微服务
复杂度可控体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌握,易于保持高可维护性和开发效率每一个UI业务模块由独立的前端团队开发,避免代码巨无霸,保持开发时的高速编译,保持较低的复杂度,便于维护,提升开发效率
独立部署由于微服务具备独立的运行进程,所以每个微服务也可以独立部署每个模块都可以单独部署,颗粒度可小到单个组件的UI独立部署,不对其他模块有影响
技术选型灵活微服务架构下,技术选型去中心化的。每个团队可以根据自身服务的需求和行业发展的现状,自由选择最合适的技术栈在同一项目下,可使用所有前端技术栈,比如同时时候vue和react
容错当某一组件发生故障时,避免故障导致应用全局性不可用单个模块发生错误,不影响全局
扩展单块架构应用也可以横向扩展每个服务可以独立横向扩展以满足业务伸缩

从上面的对比可以看出,以上5点,前后端微服务的有点几乎相似。

2. 那么我们何时需要前端微服务化?

按照百度张亚涛的说法,这就像一个人不戴眼镜,不是代表他完全不近视,而是说明他的度数还不高,等到足够高,他就不得不戴眼镜了。一样的,当我们前端项目复杂到一定程度,我们也就不得不使用微前端架构了,否则,在日益庞大的功能面前,我们会显得格外吃力,代码会格外臃肿。
当然,在我们实际开发业务时,除了张亚涛所述的情况外,还有其他情况,也会选择微前端服务化。总结如下:

  • 技术栈老旧,相关技术栈开发人员少,功能扩展吃力,重构和维护成本高。
  • 项目过于庞大,需要解耦。
  • 单一技术栈无法满足要求。

3. 常用的微前端框架

  • Mooa
  • Single-Spa(本文介绍)
  • Qiankun
  • Icestark
  • Ara Framework
  • OpenComponents
  • NUT
  • PuzzleJs

4. 我们对比后选择Single-Spa

一个用于前端微服务化的JavaScript前端解决方案

  • 使用该方案,你将获得如下益处:
    • (兼容各种技术栈)在同一个页面中使用多种技术框架(React, Vue, AngularJS, Angular, Ember等任意技术框架),并且不需要刷新页面.
    • (无需重构现有代码)使用新的技术框架编写代码,现有项目中的代码无需重构.
    • (更优的性能)每个独立模块的代码可做到按需加载,不浪费额外资源.
    • 每个独立模块可独立运行.

4.1 单体应用 与 微前端应用对比

  • 单体应用架构
  • 微前端应用架构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值