2020 非常火的11个微前端框架

点击上方“Github中文社区”,关注

看遍Github,每天提升

作者 | Jonathan Saring

译者 | Flora   

https://itnext.io/11-micro-frontends-frameworks-you-should-know-b66913b9cd20

微前端将前端整体分解为许多更小、更易管理的片段。每个团队可以端到端地拥有自己的功能,可以在自己的代码库中工作,可以独立发布版本,可以不断进行小的增量升级,还可以通过 API 与其他团队集成,以便他们可以一起组建和管理页面和应用程序。本文中,作者收集了 11 个最杰出的微前端构建工具,并提供了进一步学习的链接和视频。

将单体后端分解成为微服务之后,后端开发流程已在效率和规模上取得了显著进步。然而,当今大多数前端应用程序架构仍然是单体式的,使得前端开发流程很难加速和扩展。

微前端的想法是将前端单体分解为许多更小、更易管理的片段。每个团队可以端到端地拥有自己的功能,可以在自己的代码库中工作,可以独立发布版本,可以不断进行小的增量升级,还可以通过 API 与其他团队集成,以便他们可以一起组建和管理页面及应用程序。

微前端有很多方法,从智能的构建时组件集成,到使用自定义路由的运行时集成等等。在本文的列表中,作者收集了最杰出的微前端构建工具。欢迎读者在评论中添加反馈或建议!

  1. Bit  

Bit 容许你从独立的组件组建和管理前端。它可能是清单上最受欢迎的、可用于生产(production-ready)的解决方案。

如果查看 bit.dev 主页,你会发现它由很多独立的组件构成。这些组件由不同团队,在不同代码库中构建,并最终集成在一起,创造了一个紧密结合的产品。

Bit CLI 是广泛流行的工具,用于组件驱动开发。使用 Bit,你可以将独立的组件构建、集成和组合到一起。

尽管人们通常将微前端视为在运行时发生的组合,但 Bit 可以让开发人员在构建时高效地组合前端,以享受两全其美的优势:“传统单体式前端”的安全性和健壮性,以及微前端的 简单性可伸缩性

使用 Bit,在与其他团队合作同时,不同的团队可以独立构建、发布和公开其组件,这样就可以将 Web 开发过程转变为功能和组件的模块化组合。

除了 用于组件驱动开发的 OSS 工具 外,Bit 还为团队提供了一个 云平台,该云平台使得团队可以构建变更并在组件上进行协作,可以高效地管理和扩展开发过程,同时保持所有团队完全独立,团队可自主交付。

为了确保每个前端都有自己独立且快速的构建流程,Bit 还提供了独特的 CI/CD 流程,该流程为 100% 组件驱动,这意味着不同的团队可以安全地集成更改,而不必等待,争夺主控权或打破任何东西。开发人员可以在所有受影响的应用程序中持续和安全地将更改传播到组件。

作为结果,通过 简单的解耦代码库、自治团队、小型定义良好的 API、独立的发布管道持续增量升级,增强了工作流程。可以查看如下示例。

《我们怎样构建微前端》

https://blog.bitsrc.io/how-we-build-micro-front-ends-d3eeeac0acfc

如果你的团队使用组件来开发软件,并且正在寻找一种可以在大型应用程序上解锁微前端和模块化工作的解决方案,请务必查看 Bit 的 OSS 工具和平台,这可能正是你所需要的。

项目链接

https://github.com/teambit/bit

2. Webpack 5和Module Federation

多个单独的构建最后要形成一个应用程序。这些单独的构建不应相互依赖,因此可以单独开发和部署。

Module Federation 是 Zack Jackson 发明的 JavaScript 架构,Zack Jackson 随后提出为其创建一个 Webpack 插件。Webpack 团队提供帮助将该插件引入了 Webpack 5,目前处于 beta 测试阶段。

项目链接

https://webpack.js.org/concepts/module-federation/

简而言之,Module Federation 允许 JavaScript 应用程序在运行时从另一个应用程序动态导入代码。模块将构建唯一的 JavaScript 入口文件,其他应用程序可以通过设置 Webpack 配置项来下载该入口文件。

它还通过启用依赖关系共享来解决代码依赖关系和包大小增加的问题。例如,如果你要下载一个 React 组件,那么你的应用程序不会两次导入 React 代码。模块将自动使用你已有的 React 源,仅额外导入组件代码。最后,你可以使用 React.lazy 和 React.suspense 提供后备功能,以确保当导入的代码由于某种原因失败后,不会因构建失败而影响用户体验。

这个架构释放了构建微前端的巨大潜力。你可以在如下文章中阅读更多信息和查看示例。

采用 Webpack 5、Module Federation 和 Bit 变革微前端:

https://blog.bitsrc.io/revolutionizing-micro-frontends-with-webpack-5-module-federation-and-bit-99ff81ceb0

3. Single SPA

Single SPA 将自己定义为一种“前端微服务 Javascript 框架”。简言之,它将生命周期应用于每个应用程序。每个应用程序都可以响应 url 路由事件,并且知道如何从 DOM 引导,加载和卸载自身。传统 SPA 和 Single SPA 应用程序之间的主要区别在于它们能够与其他应用程序共存,并且它们各自没有自己的 HTML 页面。

因此,如果你希望将不同的前端或框架整合到一个 DOM 中,并希望在运行时进行集成,请查看这个有趣的实验。

https://youtu.be/L4jqow7NTVg

你可以在这里查看一些示例:

https://github.com/react-microfrontends

项目链接

https://github.com/single-spa/single-spa

4. SystemJS

SystemJS 不是微前端框架,但它确实为跨浏览器的独立模块管理提供了解决方案。这种解决方案是实现 MF 的关键(并且实际上也被 Singe-spa 使用)。

可以将 SystemJS 视为 JS 模块的协调器。它使我们无需依赖本机浏览器支持,即可使用与 JS 模块相关的不同功能,诸如动态导入和导入映射等,并且所有这些都具有接近本机的性能。一些值得注意的功能包括用于较旧浏览器的 Polyfill,使用名称的模块导入(通过将名称映射到路径)以及对多个 JS 模块的单个网络请求(通过使用其 API 将多个模块设置为单个文件)。

它还提供便捷的方式访问其“模块注册表”,以便你随时了解浏览器中哪些模块是可用的。

项目链接

https://github.com/systemjs/systemjs

 5. Piral 

Piral 的目标是让你可以使用微前端轻松构建门户应用程序。你可以使用 Piral 创建模块化前端应用程序,并利用微前端体系结构在运行时使用称为 pilets 的解耦模块进行扩展。用户可以独立开发一个 pilet,并附带必要的代码以及所有其他相关资产。这是一个现场演示:

https://youtu.be/SkKvpBHy_5I

Piral 所要求的前提条件相当宽松,开发人员仅需要安装喜欢的编辑器、终端、网络浏览器和 Node.js 即可。开发者可以在本地开发机的仿真器中执行和调试 Piral instance(应用程序外壳)和 piltes(功能模块)。

项目链接

https://github.com/smapiot/piral

6. OpenComponent

Open Component(简称 OC)项目宣布其目标是“前端世界中的无服务器”。更具体地说,OC 旨在成为一个一站式微前端框架,从而使其成为一个丰富而复杂的系统,其中包括从组件处理到注册表、再到模板、甚至包括 CLI 工具。OpenComponents 有两个部分:

  • components 是同构代码的小单元,主要由 html、javascript、css 组成。它们可以选择包含一些逻辑,从而允许服务端的 node.js 应用去组建用于呈现视图的模型。在渲染之后,它们就是纯 html 片段,可以插入到任何 html 页面中。

  • consumers 是网站或微型网站(所有小型可独立部署的网站,这些网站均通过前门服务或路由机制连接)。这些网站需要在其网页中呈现部分内容的组件。请查看这里以了解更多信息:

    • https://github.com/opencomponents/oc

7. Qiankun

Qiankun 声称自己是“一个 微前端 实现,基于 single-spa,但已使 single-spa 可用于生产(production-ready)”。该项目旨在解决由较小的子应用程序组成较大的应用程序时所面临的一些主要问题,例如发布静态资源、集成单个子应用程序、确保子应用程序在开发和部署过程中彼此独立且运行时相互隔离、处理公共依赖性和处理性能问题等。

项目链接

https://github.com/umijs/qiankun

8. Liugi

Luigi 是一个微前端 JavaScript 框架,你可以使用它创建由本地和分布式视图驱动的管理用户界面。Luigi 允许 Web 应用程序与应用程序包含的微前端进行通信。为了确保通信顺利进行,你可以配置路由、导航、授权和 UX 元素等设置。

Luigi 由 Luigi Core 应用程序和 Luigi 客户端库组成。他们使用 postMessage API 在核心应用程序和微前端之间建立安全的通信。想获取更多信息,请自行前往查看。

这是一个 测试乐园 (Test Playground),你可以在这里亲身体验它的工作原理。

https://fiddle.luigi-project.io/#/home/overview

尝试一下,也可在 GitHub 上查看这个不错的 SAP 项目:

项目链接

https://github.com/SAP/luigi

9.FrintJS

FrintJS 是“用于构建可伸缩和响应式应用程序的模块化 JavaScript 框架”。你可以使用它加载来自不同 bundlers 的应用程序,为应用程序提供结构,并处理诸如路由、依赖关系等问题。该项目可通过附加的软件包支持 RN 和 Vue,但文档和测试大多数是针对 React 的。

可以访问如下的 GitHub 项目了解更多信息。

项目链接

https://github.com/frintjs/frint

10 Mosaic

Mosaic 是一组服务,库以及规范定义了其组件之间如何彼此交互,用来支持大型网站的微服务式架构。Mosaic 使用了片段(Fragments)的机制,这些片段由单独的服务程序提供服务,并根据模板定义在运行时组合在一起。

它由一堆软件包组成,这些软件包处理不同的问题,例如路由、布局、模板存储、甚至展示 UI。需要更多信息,请查看如下链接。

项目链接

https://www.mosaic9.org/

11. PuzzleJS

PuzzleJS 是“用于可扩展和快速建站的微前端框架”。你可以使用它创建相互对话的网关和店面项目。它的灵感来自 Facebook 的 BigPipe,朝着微前端的方向发展。

PuzzleJs 提供诸如创建网关或店面(彼此独立)的功能,并提供配置文件将它们连接。你可以使用它在编译时将 html 模板编译为 javascript 函数。此操作完全独立于请求,因此 PuzzleJ 可以使用此功能发送第一个块。它也是 SEO 友好的,在服务端进行准备和渲染。而且,当片段所需的 api 出现故障时,PuzzleJs 可保证其他页面片段仍正常工作。这里是一个真实的 例子。


项目链接

https://github.com/puzzle-js/puzzle-js

Okay!到这就是本的期分享,我们下期见


如果觉得文章有价值,请点赞在看,分享。


历史分享
★ 一个吊打百度网盘的开源神器,还是99年在校妹子开发的! 10M/s★推荐一套完整的后台管理系统(附源码),非常实用,赚钱就靠它了!★ GitHub 上100个优质前端项目整理,非常全面!★ 5个值得学习和练手的Java企业级开源项目,强烈推荐★ GitHub上标星 3.2w!最全技术面试手册开源!



Github中文社区
关注 关注
  • 4
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
20个优秀的前端框架
03-02
适合懒人开发者的前端框架。(x)HTML5、CSS、PHP前端开发框架。EasyFramework是一个一体化前端解决方案,分structural、presentational、interactive三层。一个旨在减少开发时间的前端框架。(x)HTML+CSS框架,适合...
前端架构
fmk1023的博客
07-07 2653
前端架构 后端有服务框架,当然前端也有前端框架。 一. 什么是前端 “前端架构”就是构建基于服务的前端应用架构。 其思想是将前端应用切分为一系列可以单独部署的松耦合的应用,然后将这些应用组装起来创建单个面向用户的应用程序。 前端的实现有多种方式: iframe 服务端模板组合 前端框架 single-spa ...
前端框架篇一,了解qiankun
Dormiveglia-flx的博客
01-21 1718
前端是一种将复杂单体应用拆分为多个小型独立前端应用,然后将这些小应用按需加载并集成到主应用的技术方案。每个子应用都有自己的 JavaScript 和 CSS 代码。单页Web应用(single page web application,SPA),就是只有一张Web页面的应用。所有页面都来回在这张页面上切换。所以很容易暴漏出来单页面应用的两个缺点。单页面SPA的两种路由形式:Hash与History本质区别:Hash:锚点。通过锚点跳到对应位置History:History栈。
详细解析前端、前端框架qiankun以及源码
最新发布
2401_84435700的博客
04-27 954
你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】我特地针对初学者整理一套前端学习资料你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难。
三大主流前端框架,you love who?
程序员成长指北
01-30 6005
大厂技术高级前端Node进阶点击上方程序员成长指北,关注公众号 回复1,加入高级Node交流群背景及相关信息前端目前已经是大型前端应用中常见的技术,目前前端常用的框架主要有三个:无界qiankun 乾坤MicroApp那么这三种前端框架各有什么优缺点,在企业中进行大型应用开发时,应该如何进行选择呢?这篇文章讲由浅入深的告诉你答案!原文:https://juejin.cn/user/...
前端】什么是前端
逛街的喵啊
03-19 6677
前端(Micro Frontends)是一种前端架构模式,通过将单个应用程序分解为多个小型、独立的部分来实现应用程序的组合。每个小型部分都由独立的团队开发、测试和部署,然后将它们组合成为一个完整的应用程序。
前端之 二 常用框架对比
我的世界我的光彩
03-22 3791
wujie(腾讯) Micro App (京东) qiankun (蚂蚁金服) single-spa
京东开源前端架构框架
04-13
京东开源前端架构框架
一个Vue前端框架使用简单实例
01-07
Vue 是一套用于构建用户界面的渐进式JavaScript框架。与其它大型框架不同的是,Vue 被...3.创建一个简单的前端页面simple.html,并将vue.min.js和simple.html处于同一目录下,二者均处于BootStrapDemo文件下,如下图
luigi:前端框架
04-28
是一个微型前端JavaScript框架,使您可以创建由本地和分布式视图驱动的管理用户界面。 Luigi允许Web应用程序与应用程序包含的型前端进行通信。 为确保通信顺利进行,您可以轻松配置诸如路由,导航,授权和用户体验...
前端(qiankun)
qq_24832277的博客
03-29 5548
什么是前端 前端是一种多个团队通过独立发布功能的方式来共同构建现代化 web 应用的技术手段及方法策略。、 前端架构旨在解决单体应用在一个相对长的时间跨度下,由于参与的人员、团队的增多、变迁,从一个普通应用演变成一个巨石应用(Frontend Monolith)后,随之而来的应用不可维护的问题。这类问题在企业级 Web 应用中尤其常见。 前端架构具备以下几个核心价值: 技术栈无关 主框架不限制接入应用的技术栈,应用具备完全自主权 独立开发、独立部署 应用仓库独立,前后端可独立开发,部署完成
前端之什么是前端
BradenHan的专栏
03-06 1997
前端(Micro Frontends)是一种软件架构模式,它借鉴了后端服务架构的思想,将复杂单一的前端应用拆分为多个可独立开发、部署和维护的小型前端应用。每个小应用关注特定的业务域,并能够以一种无缝的方式集成到同一个主框架或者容器中,形成统一的用户体验。在前端架构下,不同的团队或项目组可以采用不同的技术栈来开发各自的前端模块,这些模块在运行时进行组合加载,共享公共资源,同时保持各自的功能和样式独立。
前端探秘:初始前端、现有方案和未来趋势
yezi__6的博客
06-15 1307
应用的加载与切换:路由问题、应用入口、应用加载应用的隔离与通信:js隔离、css样式隔离、应用间通信而single-spa则很好地解决了 路由问题、应用入口 两个问题,但是应用的加载并未实现。因此qiankun在此基础上封装了一个应用加载方案,并给出了js隔离、css样式隔离和应用间通信三个问题的解决方案,同时提供了预加载功能。总是前端是什么呢?在路由变化的时候,去加载对应子应用的代码,并在容器内跑起来。缩小项目打包体积解决系统上线拥挤问题用户使用无感知。
前端框架 之 qiankun
qq_43340606的博客
09-13 8041
qiankun文档:https://qiankun.umijs.org/zh/guide/getting-started 前端 : 是最近一年国内前端领域被频繁提及的关键字,虽然它并不是一个全新的领域/技术,但很显然在当今越来越多的前端应用即将步入第 3 个、第 5 个甚至更久的年头的背景下,如何给 巨石应用/遗产应用 注入新鲜的技术血液已经成为我们不得不正视的问题,而前端正是解决这类问题的一个非常合适的解决方案。 qiankun : 是一个生产可用的前端框架,它基于 single-spa,.
前端框架qiankun剖析
浮游的博客
04-19 2461
作为目前前端领域首屈一指的框架,qiankun无论是从接入的方便程度还是从框架本身提供的易用性来说都是可圈可点的。qiankun基于single-spa进行了二次开发,不但为用户提供了简便的接入方式(包括减少侵入性,易于老项目的改造),还贴心的提供了沙箱隔离以及实现了基于发布订阅模式的应用间通信方式,大大降低了前端的准入门槛,对于前端工程化的推动作用是不可忽视的。
vue前端qiankun框架学习到项目实战,基座登录共享
qq_42696432的博客
09-22 3632
技术无关,独立开发,独立部署,增量升级,独立运行,前端的核心目标是将巨石应用拆解成若干可以自治的松耦合应用。
第三章(概念篇) 前端架构模式
球球不吃虾WHR2349博客
01-25 1055
前端是一种将单个庞大的前端应用拆分成多个小型、独立的前端应用(即应用)的架构风格。每个微应用可以由不同的团队使用不同的技术栈进行开发、测试和部署,最终这些应用被集成到一个整体的页面中,共同构成一个完整的前端应用。下面将介绍两种常见的前端架构模式:基于路由的分发模式和基于Web组件的前端,并探讨集成与部署策略。注意:这里的代码示例仅用于演示基于Web组件的前端架构模式的基本概念,实际项目中可能需要更复杂的实现和配置。:在主应用的构建过程中,将应用的代码打包到主应用的代码中。
如何用quasar框架构建一个无界前端
06-07
Quasar 是一个基于 Vue.js 的框架,可以用来构建无界前端应用程序。下面是基于 Quasar 构建无界前端应用程序的步骤: 1. 创建一个主应用程序:使用 Quasar CLI 创建一个主应用程序,这个应用程序将会包含所有的...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 深井冰!沙雕码农脑洞大,盘点Github上那些不忍直视奇葩脑回路的沙雕项目! 152903
  • Wifi万能钥匙已经被淘汰!GitHub上这个开源工具太好用了! 43279
  • 顶级的 18 款开源的低代码开发平台,经典收藏 33884
  • 这款实现 C++、Java、Python 代码互译的工具,很强! 15081
  • 卧槽!红警警戒游戏源代码被开源了! 12933

最新评论

  • Wifi万能钥匙已经被淘汰!GitHub上这个开源工具太好用了!

    愈鱼呀: 史,全部都是抄别人的,你自己应该都没有操作过

  • 这款实现 C++、Java、Python 代码互译的工具,很强!

    想摆不敢摆的小菜: 兄弟找到软件了吗?

  • 顶级的 18 款开源的低代码开发平台,经典收藏

    dzk7266: 其实国内的低代码平台也发展起来了,虽然国外先领头做了出来,可以多关注一下国内的平台,有几款还是很不错的

  • GitHub 加速神器, 来了!

    Remett: 请问运行完之后直接跳出是为什么,成功的表现是什么

  • 文件误删秒恢复!微软又发布了一款命令行神器!

    gfintd: 要恢复的这个盘,暂时不要存入新的文件,可以用WishRecy 找回文件。

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • Twitter 推荐算法底有多牛? 已斩获11.7K star
  • 微软重磅开源 Visual ChatGPT! 一个月内斩获30K star
  • 终于不用早起抢菜了?GitHub 买菜插件出世开源了!
2023年2篇
2022年4篇
2021年64篇
2020年140篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司民治品牌网站设计推荐垦利网站推广系统推荐咸宁网站建设设计多少钱芜湖网站制作多少钱外贸网站设计报价长葛网页制作价格杭州建站公司拉萨网站推广方案推荐荆州百度标王价格烟台营销型网站建设报价凉山关键词按天收费价格张家界网站建设报价宜宾SEO按天扣费哪家好南京优化推荐石家庄网站搭建价格南充外贸网站制作喀什关键词按天扣费报价黄石阿里店铺运营上饶SEO按效果付费报价蚌埠网站排名优化公司宁德阿里店铺托管多少钱平顶山网站推广哪家好平顶山企业网站制作公司九江如何制作网站推荐黔东南建网站衡水关键词按天计费玉溪网站推广推荐佛山网站设计模板公司韶关优化盐田品牌网站设计哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化