热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于前端:17个可以实现微前端的方案

一、微前端计划思路在前端技术畛域已有如下几种成熟的实现微前端的思维:基于接口协议:子利用依照协定导出几个接口,主利用在运行过程中调用子利用导出的这

一、微前端计划思路

在前端技术畛域已有如下几种成熟的实现微前端的思维:

  • 基于接口协议:子利用依照协定导出几个接口,主利用在运行过程中调用子利用导出的这几个接口
  • 基于沙箱隔离:主利用创立一个隔离环境,让子利用根本不必思考本人是在什么环境下经营,依照一般的开发思路进行开发即可
  • 基于模块协定:主利用把子利用当作一个模块,和模块的应用形式无异

二、微前端实现的几种形式

在前端技术畛域已有如下几种形式落地施行:

  • 路由散发:开发成本低,保护成本低,可行性高,不限技术栈,实现简略
  • iFrame:开发成本低,保护成本低,可行性高,不限技术栈,实现简略
  • 利用微服务化:开发成本高,保护成本低,可行性中等,不限技术栈,实现难
  • 微件化:开发成本中等,保护老本中等,可行性低,有技术栈限度,实现难
  • 微利用化:开发成本中等,保护老本中等,可行性高,有技术栈限度,实现较难
  • 纯 Web Components:开发成本高,保护成本低,可行性高,不限技术栈,实现简略
  • 联合 Web Components:开发成本高,保护成本低,可行性高,不限技术栈,实现简略

三、17个实现微前端的框架简介

1. Single-Spa:最早的前端微服务 Javascript 框架,兼容多种前端技术栈

  • 基于Single-Spa,阿里系开源微前端框架,
  • 是一个将多个单页面利用聚合为一个整体利用的 Javascript 微前端框架,
  • 在同一页面上应用多个前端框架,而不必刷新页面,
  • 不限技术栈,
  • 反对独立部署每一个单页面利用,
  • 新性能应用新框架,旧的单页利用不必重写能够共存,
  • 无效改善初始加载工夫,提早加载代码,
  • 文档地址:https://zh-hans.single-spa.js…

2. Qiankun:基于Single-Spa,阿里系开源微前端框架

  • 阿里飞冰微前端框架,兼容多种前端技术栈,
  • 基于 single-spa 封装,提供了更加开箱即用的 API,
  • 不限技术栈,
  • HTML Entry 接入形式,让你接入微利用像应用 iframe 一样简略,
  • 款式隔离,确保微利用之间款式相互不烦扰,
  • JS 沙箱,确保微利用之间全局变量/事件不抵触,
  • 资源预加载,在浏览器闲暇工夫预加载未关上的微利用资源,减速微利用关上速度,
  • umi 插件,提供了 @umijs/plugin-qiankun 供 umi 利用一键切换成微前端架构零碎,
  • 文档地址:https://qiankun.umijs.org/zh/…

3. Icestark:阿里飞冰微前端框架

  • 后盾比拟扩散,体验差异大,因为要频繁跳转导致操作效率低,心愿能对立收口的一个零碎内,
  • 单页面利用十分宏大,多人合作老本高,开发/构建工夫长,依赖降级回归老本高,
  • 不限技术栈,
  • 零碎有二方/三方接入的需要,
  • 文档地址:https://micro-frontends.ice.w…

4. Alibaba Cloud Alfa 是在阿里云控制台体系中孵化的微前端计划,定位是面向企业级的微前端体系化解决方案

  • 不限技术栈,
  • 开箱即用,无代码侵入,
  • 欠缺的微前端体系撑持,
  • 残缺的前端容器沙箱,
  • 多实例兼容,
  • 文档地址:https://alfajs.io/

5. Module Federation:是 Zack Jackson 创造的 Javascript 架构,Zack Jackson 随后提出为其创立一个 Webpack 插件。

  • 是webpack给出的微前端计划,
  • 使 Javascript 利用能够动静运行另一个 Javascript 利用中的代码,同时能够共享依赖,
  • 依赖主动治理,能够共享 Host 中的依赖,版本不满足要求时主动 fallback 到 Remote 中依赖,
  • 共享模块粒度自在掌控,小到一个独自组件,大到一个残缺利用。既实现了组件级别的复用,又实现了微服务的基本功能,
  • 共享模块非常灵活,模块中所有组件都能够通过异步加载调用,
  • 文档地址:https://webpack.js.org/concep…

6. FrintJS:用于构建可伸缩和响应式应用程序的模块化 Javascript 框架

  • 加载来自不同 bundlers 的应用程序,为应用程序提供构造,并解决诸如路由、依赖关系等问题,
  • 通过附加的软件包反对 RN 和 Vue,但文档和测试大多数是针对 React 的,
  • 文档地址:https://frint.js.org/

7. Bit:将独立的组件构建、集成和组合到一起和治理前端

  • 具备传统单体式前端的安全性和健壮性,
  • 介接入形式简略、可伸缩性强,
  • 通过 简略的解耦代码库、自治团队、小型定义良好的 API、独立的公布管道 和 继续增量降级,加强工作流程,
  • 文档地址:https://bit.dev/docs/quick-start

8. PuzzleJS:用于可扩大和疾速建站的微前端框架

  • SEO 敌对,在服务端进行筹备和渲染,
  • 当片段所需的 api 呈现故障时,PuzzleJs 可保障其余页面片段仍失常工作,
  • 文档地址:https://github.com/puzzle-js/…

9. Mooa:基于Angular的微前端服务框架

  • 兼容多种前端技术栈,
  • 构建插件化的 Web 开发平台,满足业务疾速变动及分布式多团队并行开发的需要,
  • 构建服务化的中间件,搭建高可用及高复用的前端微服务平台,
  • 反对前端的独立交付及部署,
  • 文档地址:https://github.com/phodal/mooa

10. ngx-planet:一个弱小、牢靠、欠缺、齐全可用于生产环境的 Angular 微前端库

  • 只反对 Angular 框架,不反对其余 MV* 前端框架,
  • 反对同时渲染多个子利用,
  • 反对并存(coexist)和默认(default)两种模式, 默认模式切换其余子利用销毁以后子利用,并存模式不会销毁,而是暗藏,
  • 反对子利用的预加载,
  • 反对款式隔离,
  • 内置多个利用之间的通信,
  • 反对跨利用组件的渲染,
  • 欠缺的示例,蕴含路由配置、懒加载等所有性能,
  • 文档地址:https://github.com/worktile/n…

11. Ara Framework:Ara 是一个应用Airbnb 的 Hypernova轻松开发和集成微前端的框架

  • 技术栈自在,
  • 架构灵便,
  • 文档地址:https://ara-framework.github….

12. Micro-app:是京东批发推出的基于类WebComponent进行渲染,从组件化的思维实现的微前端技术

  • 应用简略,接入微前端成本低,
  • 零依赖,
  • 兼容所有框架(不须要提供脚手架工具),
  • 提供了JS沙箱、款式隔离、元素隔离、预加载、资源地址补全、插件零碎、数据通信等一系列欠缺的性能,
  • https://zeroing.jd.com/

    13. Piral:基于 React 的微前端,指标是让你能够应用微前端轻松构建门户应用程序

  • 渐进迁徙,
  • 共享库,
  • 共享现有布局和程序框架,
  • 文档地址:https://github.com/smapiot/piral

14. OpenComponent:指标是“前端世界中的无服务器”,旨在成为一个一站式微前端框架,从而使其成为一个丰盛而简单的零碎,其中包含从组件解决到注册表、再到模板、甚至包含 CLI 工具

  • 同构小单元代码,
  • 组件化渲染利用页面,
  • 文档地址:https://github.com/opencompon…

    15. Liugi:是一个微前端 Javascript 框架,你能够应用它创立由本地和分布式视图驱动的治理用户界面

  • 容许 Web 应用程序与应用程序蕴含的微前端进行通信,
  • 能够配置路由、导航、受权和 UX 元素等设置,
  • 文档地址:https://github.com/SAP/luigi

16. Mosaic:是一组服务,库以及标准定义了其组件之间如何彼此交互,用来反对大型网站的微服务式架构

  • 应用了片段(Fragments)的机制,这些片段由独自的服务程序提供服务,并依据模板定义在运行时组合在一起,
  • 由一堆软件包组成,这些软件包解决不同的问题,例如路由、布局、模板存储、甚至展现 UI,
  • 文档地址:https://www.mosaic9.org/

17. SystemJS:不是微前端框架,但它的确为跨浏览器的独立模块治理提供了解决方案

  • 使咱们无需依赖本机浏览器反对,即可应用与 JS 模块相干的不同性能,诸如动静导入和导入映射等,并且所有这些都具备靠近本机的性能,
  • 提供便捷的形式拜访其“模块注册表”,以便你随时理解浏览器中哪些模块是可用的,
  • 文档地址:https://github.com/systemjs/s…

四、抉择微前端计划的时候须要思考是否解决好以下10个问题

  • 微利用的注册、异步加载和生命周期治理;
  • 微利用之间、主从之间的音讯机制;
  • 微利用之间的平安隔离措施;
  • 微利用的框架无关、版本无关;
  • 微利用之间、主从之间的公共依赖的库、业务逻辑(utils)以及版本怎么治理;
  • 微利用独立调试、和主利用联调的形式,疾速定位报错(发射问题);
  • 微利用的公布流程;
  • 微利用打包优化问题;
  • 微利用专有云场景的出包计划;
  • 渐进式降级:用微利用计划平滑重构老我的项目。

推荐阅读
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了Java的集合及其实现类,包括数据结构、抽象类和具体实现类的关系,详细介绍了List接口及其实现类ArrayList的基本操作和特点。文章通过提供相关参考文档和链接,帮助读者更好地理解和使用Java的集合类。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 【MEGA DEAL】Ruby on Rails编码训练营(97%折扣)限时特惠!
    本文介绍了JCG Deals商店提供的Ruby on Rails编码训练营的超值优惠活动,现在只需29美元即可获得,原价为$1,296。Ruby on Rails是一种用于Web开发的编程语言,即使没有编程或网页设计经验,也能在几分钟内构建专业的网站。该训练营共有6门课程,包括使用Ruby on Rails进行BDD的课程,使用RSpec 3和Capybara等。限时特惠,机会难得,赶快行动吧! ... [详细]
  • 加密世界下一个主流叙事领域:L2、跨链桥、GameFi等
    本文介绍了加密世界下一个主流叙事的七个潜力领域,包括L2、跨链桥、GameFi等。L2作为以太坊的二层解决方案,在过去一年取得了巨大成功,跨链桥和互操作性是多链Web3中最重要的因素。去中心化的数据存储领域也具有巨大潜力,未来云存储市场有望达到1500亿美元。DAO和社交代币将成为购买和控制现实世界资产的重要方式,而GameFi作为数字资产在高收入游戏中的应用有望推动数字资产走向主流。衍生品市场也在不断发展壮大。 ... [详细]
author-avatar
骏马奔腾09
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有