【微前端】为什么需要微前端

1 什么是微前端

微前端就是将不同的功能按照不同的维度拆分成多个子应用。通过主应用来加载这些子应用。

微前端的核心在于拆,拆完后再合

2. 为什么去使用他

○ 不同团队间开发同一个应用技术栈不同

○ 希望每个团队都可以独立开发,独立部署

○ 项目中还需要老的应用代码

我们可以将一个应用划分成若干个子应用,将子应用打包成一个个的lib。当路径切换时加载不同的子应用。这样每个子应用都是独立的,技术栈也不用做限制了,从而解决协同开发的问题。

3. 怎么样落地微前端

2018年Single-SPA 诞生了,single-spa是一个用于前端微服务化的Javascript 前端解决方案(本身没有处理样式隔离,js执 行隔离)实现路陆游劫持和应用加载

2019年qiankun 基于Single-SPA 提供了更加开箱即用的api (single-spa+sandbox+import-html-entry)做到了,技术栈无关,并且接入简单(像iframe一样简单)

总结:子应用可以独立构建,运行时动态加载。主应用完全解藕,技术栈无关,靠的是协议接入(子应用必须导出bootstrap、mount、unmount方法)

应用通信

■ 基于URL来进行数据传递,但是传递消息能力弱

■ 基于CustomeEvent实现通信

■ 基于props主子应用间通信

■ 使用全局变量、redux进行通信

公共依赖

■ CDN-externals

■ webpack联邦模块

4. 何时需要引入微前端

通常情况下并不要需要微前端架构,冒然引入会增加额外的复杂度等问题。当出现以下特征时,可以考虑引入微前端:

  • 应用程序的规模不断扩大,导致应用程序变得难以维护和扩展。 应用程序需要多个团队协同开发,但是不同团队之间的开发进度和技术栈不一致。
  • 应用程序需要支持动态更新和增量升级,但是传统的单体应用程序难以实现。
  • 应用程序需要支持自定义和可插拔的功能,但是传统的单体应用程序的架构限制了自定义和可插拔性。
  • 应用程序需要支持不同的终端设备和浏览器,但是传统的单体应用程序难以实现对不同设备和浏览器的适配。

5. 微前端的优缺点

微前端优点:

可扩展性:可以根据需要添加或删除微前端。

独立开发:每个微前端可以由不同的团队开发和维护。

独立部署:每个微前端都可以独立部署,从而使整个应用程序更加稳定。

技术栈灵活:不同的微前端可以使用不同的技术栈。

高效开发:可以同时开发多个微前端,从而提高开发效率。

可维护性:微前端可以更容易地进行维护和测试,因为它们具有清晰的界限和独立的代码库。

微前端劣势:

增加了系统复杂度

微前端需要对系统进行拆分,将单体应用拆分成多个独立的微前端应用。这种拆分可能导致系统整体变得更加复杂,因为需要处理跨应用之间的通信和集成问题。

需要依赖于额外的工具和技术

实现微前端需要使用一些额外的工具和技术,例如模块加载器、应用容器等。这些工具和技术需要额外的学习和维护成本,也可能会导致一些性能问题。

安全性问题

由于微前端应用是独立的,它们之间可能存在安全隐患。例如,如果某个微前端应用存在漏洞,攻击者可能会利用这个漏洞来攻击整个系统。

兼容性问题

由于微前端应用是独立的,它们之间可能存在兼容性问题。例如,某个微前端应用可能使用了一些不兼容的依赖库,这可能会导致整个系统出现问题。

开发团队需要有一定的技术水平

实现微前端需要开发团队有一定的技术水平,包括对模块化、代码复用、应用集成等方面有深入的了解。如果团队缺乏这方面的技能,可能会导致微前端实现出现问题。

相关推荐
whyfail10 分钟前
前端学 Spring Boot(5):从“你是谁”到“服务真的上线了”
前端·spring boot·后端
程序员黑豆1 小时前
鸿蒙开发:RelativeContainer相对布局组件实战——实现5个文本组件对齐
前端·华为·harmonyos
环境栈笔记1 小时前
高性价比指纹浏览器推荐与选型:如何对照价格和实际可用功能筛选候选
前端·人工智能·后端·自动化
hyf3266331 小时前
泛程序哪有想象中难!小白跟着走一遍就全懂
前端·爬虫·搜索引擎·seo·蜘蛛池
码农学院1 小时前
React公众号开发:母婴用品会员积分体系技术方案
前端·react.js·前端框架
路光.2 小时前
Vue2升级Vue3处理原 UMD/CommonJS 打包文件,不是标准 ESM
前端·javascript·vue.js·vue3
黄华SJ520it2 小时前
门店预约系统开发:提升服务行业数字化转型
前端·数据库·系统开发
一只月月鸟呀2 小时前
移动端tap与click的区别 && 点透事件
开发语言·前端·javascript
雪隐2 小时前
AI股票小助手10-我用代码管住自己的手:一个普通人的市场观察笔记
前端·人工智能·后端
KaMeidebaby3 小时前
卡梅德生物技术快报|抗体筛选:抗体筛选中的噬菌体展示四参数调优——从流程设计到数据验证
开发语言·前端·javascript