简述什么是微前端 微前端几种框架的区别

news/2024/12/23 0:06:25/

微前端就是将各个模块分成不同项目 方便多个团队一起开发互相不影响 

例如:a团队维护较老的项目使用angular,b团队开发react,c团队开发vue 。按道理说abc三个项目并没有关联,但是他们又都是公司内部管理的系统。需要集成在一起 ,这时候就可以使用微前端技术了,我们可以将用户信息单独抽离在主项目,这样我们就可以只登陆一次,打开各个项目。

类似于如下效果:每个系统是独立模块

微前端的优点:

 1.接入项目与使用技术栈无关

2.各个项目相互独立,独立开发,独立后端

3.增量式升级(可以一点点增加新的系统进入)

4.独立运行

 其实我们平时接触的iframe就是微前端的一种

下面简单介绍一下市场上常用的微前端框架:single-spa,qiankun,micro-app(推荐),wujie(推荐),

iframe

iframe优点:

iframe 自带的样式、环境隔离机制使得它具备天然的沙盒机制(相互隔离)。

嵌入子应用比较简单,学习较为简单。

iframe缺点:

iframe功能之间的跳转是无效的,刷新页面无法保存状态。

URL的记录完全无效,刷新会返回首页。

主应用劫持快捷键操作,事件冒泡不穿透到主文档树上。

模态弹窗的背景是无法覆盖到整个应用。

iframe应用加载失败,内容发生错误主应用无法感知,通信麻烦。

综上,iframe也可以实现微前端,但是需要解决其自身的诸多弊端。公司的无界微前端就是基于iframe实现的。

single-spa

官网:single-spa | single-spa

必须要在入口函数中暴露三个钩子函数(bootstrap-启动,mount-挂载,unmount-销毁)给主程序用

缺点:

1.子应用会出现样式冲突,样式污染。

2.js也会存在同样的污染问题 

3.主应用必须得手动加载子应用打包好的lib库文件

qiankun

阿里开发 基于singe-spa封装 umi插件 提供了umi应用一键切换为微前端

 官方文档:快速上手 - qiankun

特点:

1.通过html<qiankun>方式接入 较为简单快捷 

2.样式隔离 (类似与:scoped)

3.沙箱运行

4.资源预先加载(主应用执行start /挂载以后立刻去预加载其他应用的静态资源)

5.应用之间可以完成通信

6.技术开发3年对于其他技新技术来说较为稳定

micro-app

京东开发 micro-app 并没有沿袭 single-spa 的思路,而是借鉴了 WebComponent 的思想

将前端封装为一个webcomponent组件 使用shadowDom隔离 

官方文档:MicroApp

优点:

1.不需要更改子应用项目逻辑方法 也不需要修改webpack 使用简单

2.对比qiankun 子项目的入侵性更小 

缺点:技术较新 可能不稳定

wujie

腾讯开发 基于 Web Components + iframe 的微前端架

官方文档:bus | 无界

优点:

1.预加载 

2.开箱立即使用 开发成本较低

3.应用保活(类似于:keep-alive)

4.js,css沙箱

缺点:技术较为新可能不稳定 


http://www.ppmy.cn/news/91045.html

相关文章

SolVES 模型与多技术融合【QGIS、PostgreSQL、ARCGIS、MAXENT、R】实现生态系统服务功能社会价值评估

SolVES模型&#xff08;Social Values for Ecosystem Services&#xff09;全称为生态系统服务社会价值模型&#xff0c;是由美国地质勘探局和美国科罗拉多州立大学联合开发的一款地理信息系统应用程序&#xff0c;开发该模型的目的主要是对生态系统服务功能中的社会价值进行空…

​​​​​​​博物馆文物馆藏环境空气质量无线监控系统方案

博物馆文物馆藏环境空气质量无线监控系统方案 博物馆无线环境测控系统 博物馆恒温恒湿消毒净化系统 现代化博物馆空气质量一体化3D可视化管控平台 博物馆温湿度在线监控系统 博物馆光照在线监控系统 博物馆二氧化碳在线监控系统 博物馆在线监控系统 博物馆紫外线在线监控…

go手写Redis(6)之协议解析

RESP协议解析 具体的协议说明可以参考第一篇文章协议说明&#xff0c; 下面我们直接开始协议的解析 Reply 在 interface/resp/reply.go 中定义一个顶级的回复实体接口&#xff0c;后续所有的协议类都将实现这个接口 // Reply 用于回复数据 type Reply interface {//ToBytes…

使用 docker 搭建 mysql 主从配置

真正的配置文件是docker中 /etc/my.cnf 拉取镜像 docker pull mysql:5.7启动主数据库和从数据库 docker run -p 3306:3306 --restartalways --name mysql_v1 -v /var/mysql/mysql_v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORDroot -d mysql:5.7 docker run -p 3307:3306 --res…

SIEM(安全信息与事件管理)的重要性及 Log360 的卓越功能

摘要&#xff1a;随着网络安全威胁的不断增加&#xff0c;企业和组织对于安全信息与事件管理&#xff08;SIEM&#xff09;解决方案的需求日益迫切。本文将重点介绍 SIEM 的重要性&#xff0c;并详细探讨 ManageEngine 公司旗下的 Log360 解决方案所提供的卓越功能和优势。 引…

5年华为外包,外包究竟怎么样....

最近身边很多人进了外包或者被问到进到外包公司怎么样&#xff0c;感觉大家对外包公司不是很了解&#xff0c;也有一些误解&#xff0c;我们看看过来人怎么说。 5年外包时光 我曾是华为外包软件测试员工&#xff0c;就职于东莞松山湖&#xff0c;2017年9月12号入职&#xff0c…

Microsoft Office 2013安装

哈喽&#xff0c;大家好。今天一起学习的是office2013的安装&#xff0c;有兴趣的小伙伴也可以来一起试试手。 一、测试演示参数 演示操作系统&#xff1a;Windows 7 支持Win10安装&#xff0c;不建议Win11安装&#xff0c;不支持WinXP系统 系统类型&#xff1a;64位 演示版本…

案例分享 | 纽扣电池石墨片厚度及缺陷检测

石墨片是一种导热散热材料&#xff0c;质轻柔软&#xff0c;能够轻松贴合在各种热源点&#xff0c;在新能源、航天、3C电子等领域应用广泛。 汽车钥匙中的纽扣电池也需要使用石墨片&#xff0c;石墨片会有统一的厚度标准&#xff0c;装配过程中表面不可避免地会出现裂纹、划痕…