这么好的微前端解决方案你顶得住?

开发 前端
微前端概念由微服务概念延展而来,摒弃大型单体方式,将前端整体分解为小而简单的块,这些块可以独立开发、测试和部署,同时仍然聚合为一个产品出现在客户面前。

微前端概念由微服务概念延展而来,摒弃大型单体方式,将前端整体分解为小而简单的块,这些块可以独立开发、测试和部署,同时仍然聚合为一个产品出现在客户面前。

微前端不是一门具体的技术,而是整合了技术、策略和方法,可能会以脚手架、辅助插件和规范约束这种生态圈形式展示出来,是一种宏观上的架构。这种架构目前有多种方案,都有利弊之处,但只要适用当前业务场景的就是好方案。

[[356740]]

1. iframe

iframe 是 html 提供的标签, 可以加载其他web应用的内容 ,还能兼容所有的浏览器,所以它可以加载全部你想要加载的web应用 。它最大的特点就是提供了浏览器原生的硬隔离方案,无论是样式隔离、js 隔离这类问题全部都能完美解决。

iframe虽然能基本做到微前端所该做的所有事情,但它的隔离性无法被突破,导致应用间上下文无法被共享,会带来开发体验、产品体验的问题。不是单页应用,会导致浏览器刷新 iframe url 状态丢失、后退前进按钮无法使用。

2. ES Module

微前端无外乎三大特性, 无技术栈限制 、 应用单独开发 , 多应用整合 。

  • 无技术栈限制: ESM 加载的只是js内容,无论哪个框架,最终都要编译成js,所以等于ESM 都能加载。
  • 应用单独开发:ESM只是js的一种规范,不会影响应用的开发模式。
  • 多应用整合:只要将微应用以 ESM 的方式暴露出来,就能正常加载。远程加载模块: ESM 能够直接请求 cdn 资源。ESM 也存在着兼容性这个弊端,大部分老版的浏览无法直接使用,不过他可以通过 webpack 、 rollup 、 esbuild 、 snowpack 等编译工具成为兼容性的代码。

3. qiankun

在微前端界, qiankun 称得上是最早成型且知名度最广的框架了,qiankun 的特点在其官网中是这样说的:

基于 single-spa 封装,提供了更加开箱即用的 API技术栈无关,任意技术栈的应用均可使用,不论是React/Vue/Angular/JQuery 还是其他等框架HTML Entry 接入方式,让你接入微应用像使用 iframe 一样简单样式隔离,保证微应用之间样式互相不干扰JS 沙箱,微应用之间全局变量/事件不冲突资源预加载。

4. EMP

Federation 实现,达到第三方依赖共享,减少不必要的代码引入的目的。每个微应用独立部署运行,并通过cdn的方式引入主程序中,所以只要部署一次,即可提供给任何基于 Module Federation 的应用使用。而且这部分代码是远程引入,不必参加应用的打包。

EMP 通过 cdn 加载微应用,所以每个微应用中的代码有变动时,不用重新打包发布就能加载到最新的微应用。每个微应用间都可以引入其他的微应用,没有中心应用的概念。跨技术栈组件式调用,提供了在主应用框架中可以调用其他框架组件的能力。

开发者可以按需加载,选择加载微应用中需要的部分,不强制将整个应用全部加载。每一个应用都可以进行状态共享,就像使用npm模块进行开发一样,十分方便。EMP 除了具备微前端的能力外,也有跨应用状态共享、跨框架组件调用的能力,这是它优秀的地方!

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2012-04-11 11:36:08

带宽提速千兆路由器

2020-12-09 09:30:57

前端开发技术

2020-08-05 10:50:48

RedisCall数据库

2017-11-10 07:08:24

前端优化策略

2021-04-20 20:03:28

Systemjs模块化前端

2020-05-22 13:09:46

移动支付银行云闪付

2020-09-04 13:50:35

前端异常监控代码

2021-03-09 12:25:08

区块链资金比特币

2020-03-23 14:35:28

前端架构应用程序

2017-05-14 16:02:45

前端开发标签嵌套

2018-09-14 16:20:37

2009-03-17 09:27:52

ITSMITIL解决方案

2019-04-28 11:01:05

云安全云计算CASB

2023-06-12 08:20:17

2010-06-09 08:49:54

IBM SSCT

2015-04-10 17:00:15

百会强大微

2018-01-29 14:01:17

htmljavascriptApp

2020-12-18 10:29:06

人脸识别AI人工智能

2013-09-16 11:46:40

CDN前端性能Radware

2018-12-03 12:17:27

Semptian解决方案
点赞
收藏

51CTO技术栈公众号