Open sanlangguo opened 3 years ago
官方解释: 用于构建具有多个可以独立发布功能的团队的现代 Web应用程序的技术、策略和方法。 Micro Frontends 说白了,就是一个应用,有多个模块组合而成,且每个模块是一个独立的项目,这独立的项目可以分不同的团队自主维护,技术选型可以自选,例如react,vue 等,当然也可以不用前端框架去实现,后续可以独立发布,团队自主自治.
官方解释: 用于构建具有多个可以独立发布功能的团队的现代 Web应用程序的技术、策略和方法。 Micro Frontends
说白了,就是一个应用,有多个模块组合而成,且每个模块是一个独立的项目,这独立的项目可以分不同的团队自主维护,技术选型可以自选,例如react,vue 等,当然也可以不用前端框架去实现,后续可以独立发布,团队自主自治.
微服务是指后端服务,它们在自己的操作系统中运行,管理自己的数据库并通过网络进行彼此间的通信。
将其与所有存在于单个选项卡中的微前端进行比较:一个选项卡中的所有浏览器javascript都存在于单个操作系统进程(甚至线程!)。浏览器javascript通常不能直接访问数据库,浏览器选项卡内的通信发生在内存中,而不是通过网络进行通信。
那它们有什么共同点???
独立的构建和部署。将DOM视为微前端使用的共享资源。一个微前端的DOM不能够被其他微前端触及,类似于一个微服务的数据库不应该被其他没有权限的微服务触及。
参考 single-spa 微前端概念
任何新技术的产生都是为了解决现有场景和需求下的技术痛点,微前端也是,它的存在,必有它出现的原因
拆分和细化:当下前端领域,单页面应用(SPA)是非常流行的项目形态之一,而随着时间的推移以及应用功能的丰富,单页应用变得不再单一而是越来越庞大也越来越难以维护,往往是改一处而动全身,由此带来的发版成本也越来越高。微前端的意义就是将这些庞大应用进行拆分,并随之解耦,每个部分可以单独进行维护和部署,提升效率。
整合历史系统:在不少的业务中,或多或少会存在一些历史项目,这些项目大多以采用老框架类似(Backbone.js,Angular.js 1)的B端管理系统为主,介于日常运营,这些系统需要结合到新框架中来使用还不能抛弃,对此我们也没有理由浪费时间和精力重写旧的逻辑。而微前端可以将这些系统进行整合,在基本不修改来逻辑的同时来同时兼容新老两套系统并行运行。
这篇文章 微前端的核心价值 还有目前,我们公司特别是审核后台 TOB 项目有大部分重复的功能,且被不同团队在使用,我们可以常用的公共部分(文章,文件管理)独立出来,根据业务功能做一个子应用
这篇文章 微前端的核心价值
还有目前,我们公司特别是审核后台 TOB 项目有大部分重复的功能,且被不同团队在使用,我们可以常用的公共部分(文章,文件管理)独立出来,根据业务功能做一个子应用
什么是微前端
对比微服务
微服务是指后端服务,它们在自己的操作系统中运行,管理自己的数据库并通过网络进行彼此间的通信。
将其与所有存在于单个选项卡中的微前端进行比较:一个选项卡中的所有浏览器javascript都存在于单个操作系统进程(甚至线程!)。浏览器javascript通常不能直接访问数据库,浏览器选项卡内的通信发生在内存中,而不是通过网络进行通信。
那它们有什么共同点???
独立的构建和部署。将DOM视为微前端使用的共享资源。一个微前端的DOM不能够被其他微前端触及,类似于一个微服务的数据库不应该被其他没有权限的微服务触及。
参考 single-spa 微前端概念
为什么会有微前端
任何新技术的产生都是为了解决现有场景和需求下的技术痛点,微前端也是,它的存在,必有它出现的原因
拆分和细化:当下前端领域,单页面应用(SPA)是非常流行的项目形态之一,而随着时间的推移以及应用功能的丰富,单页应用变得不再单一而是越来越庞大也越来越难以维护,往往是改一处而动全身,由此带来的发版成本也越来越高。微前端的意义就是将这些庞大应用进行拆分,并随之解耦,每个部分可以单独进行维护和部署,提升效率。
整合历史系统:在不少的业务中,或多或少会存在一些历史项目,这些项目大多以采用老框架类似(Backbone.js,Angular.js 1)的B端管理系统为主,介于日常运营,这些系统需要结合到新框架中来使用还不能抛弃,对此我们也没有理由浪费时间和精力重写旧的逻辑。而微前端可以将这些系统进行整合,在基本不修改来逻辑的同时来同时兼容新老两套系统并行运行。
微前端的使用场景
实现微前端方案的对比
现在有哪些成熟的微前端框架?