微前端概念由微服务概念延展而来,摒弃大型单体方式,将前端整体分解为小而简单的块,这些块可以独立开发、测试和部署,同时仍然聚合为一个产品出现在客户面前。
微前端不是一门具体的技术,而是整合了技术、策略和方法,可能会以脚手架、辅助插件和规范约束这种生态圈形式展示出来,是一种宏观上的架构。这种架构目前有多种方案,都有利弊之处,但只要适用当前业务场景的就是好方案。
1. iframe
iframe 是 html 提供的标签, 可以加载其他web应用的内容 ,还能兼容所有的浏览器,所以它可以加载全部你想要加载的web应用 。它最大的特点就是提供了浏览器原生的硬隔离方案,无论是样式隔离、js 隔离这类问题全部都能完美解决。
iframe虽然能基本做到微前端所该做的所有事情,但它的隔离性无法被突破,导致应用间上下文无法被共享,会带来开发体验、产品体验的问题。不是单页应用,会导致浏览器刷新 iframe url 状态丢失、后退前进按钮无法使用。
2. ES Module
微前端无外乎三大特性, 无技术栈限制 、 应用单独开发 , 多应用整合 。
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 除了具备微前端的能力外,也有跨应用状态共享、跨框架组件调用的能力,这是它优秀的地方!
创作人:杨丛聿 图作为一种现实中广泛存在的结构,与我们的生活息息相关,如社交...
作者 | 元吟 来源 | 阿里技术公众号 一 背景 2018年7月9日,我通过校招加入阿里...
最近在忙着优化集团公司的一个报表。优化完成后,报表查询速度由从半小时以上(甚...
预留实例券支持抵扣预测功能,帮助您判断哪些已购买的按量付费实例符合匹配要求...
本篇文章则介绍如何使用Python进行数据驱动。这里以pytest测试框架为例,重点讲...
香港主机 的优点有哪些 1.无备案限制 与国内主机相比,将网站托管在 香港主机 上...
最近Gartner发布了数据科学和机器学习(DSML)平台魔力象限报告。数据科学、机器学...
服务器租用 大家都知道怎么回事,这里就不细说了。云主机租用是最近几年内流行起...
预留实例券是一种自身单独计费的抵扣券,购买后可以抵扣按量付费实例的账单。本...
TOP云 (west.cn)8月23日消息,近日国外 域名 投资人Jamie Zoch在其个人网站上...