服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 编程技术 - 微型前端:是什么,为什么,以及怎么搞?

微型前端:是什么,为什么,以及怎么搞?

2021-03-15 01:10今日头条闻数起舞 编程技术

Martin Fowler将微前端架构定义为“一种独立可交付前端应用程序被组成的建筑风格”。简单地,微前端是网页的一部分(不是整页)。在微前端架构中,有一个“主机”或“容器”页面,可以托管一个或多个微前端。主机/容器页面还可

微型前端:是什么,为什么,以及怎么搞?

在我之前的文章中(本文末尾的链接),我展示了有关微前端的动手以及如何创建它们。在本文中,我将恢复退步并解释什么是微型前端,为什么我们需要使用它们和不同的方式来实现它们。这请帮助我为我公司提供建议的建议,我希望它能让读者有益于为您的项目提供合适的架构选择。

什么是微前端

Martin Fowler将微前端架构定义为“一种独立可交付前端应用程序被组成的建筑风格”。简单地,微前端是网页的一部分(不是整页)。在微前端架构中,有一个“主机”或“容器”页面,可以托管一个或多个微前端。主机/容器页面还可以共享一些自己的微前端组件。

例如,正如我们在先前的文章中实现的那样,我们将按钮组件从MFE1页面暴露到MFE2(主机/容器)中

微型前端:是什么,为什么,以及怎么搞?

或者在

http://mfe1.s3-website-us-east-a.amazonaws.com/在本文中部署到S3

微型前端:是什么,为什么,以及怎么搞?

微型前端架构由3个主要组件组成:

  • 微前端(在上一个示例中,MFE1的按钮是微前端)
  • 主机/容器(在前面的示例中,MFE2是主机)
  • 微型框架:我们使用了WebPack 5模块联合插件

为什么微型前端?

引入了微前端架构以解决当前SPA前端开发的多个问题。我经历了单个网站的增长,以至于它变得非常难以扩大,修改甚至培训新工程师成为其中的一部分。通过这种单片系统,开发人员将彼此封锁,以应用一个小变化。以下是微型前端的一些好处:

  • 团队可扩展性:多个团队可以独立工作以贡献多个系统。这使我们能够将工作划分并通过多个团队缩放。
  • 单一责任:这将允许每个团队构建单一责任的组件。托管团队可以专注于分析,性能和每个功能团队可以专注于客户。两支球队可以在其特定领域获得100%。主页团队可以在创建大型主页上关注100%。每个微型前端团队将焦点100%的微观前端的功能。
  • 可重用性:我们将能够在多个地方使用代码。将构建和部署一个组件,不同的团队可以重新使用它。
  • 技术不可知论:微型前端架构独立于技术。您可以使用来自不同技术的组件(JavaScript,React,Vue,Angular …)。您不必担心部署或构建它们。
  • 学习曲线:对于加入团队的新工程师,更容易学习较小的应用程序,而不是了解具有数千行代码线的巨石。

如何实施微型前端?

微前端的主要是主机/容器和微前端之间的集成。有三种方法可以整合微型前端

构建时集成

这是今天实施的大部分代码。容器将将组件安装为库,类似于您从NPM安装的库。此方法的问题正在同步图书馆的不同版本和构建问题。此外,很难使用不同的技术。此外,最终包的大小将很大,因为它包含所有依赖项。此外,您必须再次部署依赖性的任何更改。而且,容器和所有微前端之间存在紧密的耦合。

运行时集成

这是我在以前的文章中解释的。在这种情况下,容器是单独构建和部署的。每个微前端都可以作为单独的包装作为一个单独的包装,即容器/主机可以获取所需的微前端。有关此方法的更多解释,请参阅本文末尾的文章列表。在这种情况下,容器和微前端完全取耦合。它们不共享构建或部署,并可以使用不同的技术。容器可以决定要部署的微前端版本。

服务器端集成

在这种情况下,所有功能都将在确定要加载的微前端的后端中。服务器将决定将该请求路由到的URL。这是一个标准的服务器端构图。

原文地址:https://www.toutiao.com/i6939335830960079399/

延伸 · 阅读

精彩推荐
  • 编程技术Delphi - Indy idMessage和idSMTP实现邮件的发送

    Delphi - Indy idMessage和idSMTP实现邮件的发送

    这篇文章主要介绍了Delphi - Indy idMessage和idSMTP实现邮件的发送,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    JJ_JeremyWu6592020-09-22
  • 编程技术从Context源码实现谈React性能优化

    从Context源码实现谈React性能优化

    这篇文章主要介绍Context的实现原理,源码层面掌握React组件的render时机,从而写出高性能的React组件,源码层面了解shouldComponentUpdate、React.memo、PureComponen...

    魔术师卡颂5312020-12-20
  • 编程技术AIOps,SRE工程师手中的利器

    AIOps,SRE工程师手中的利器

    AIOps开始成为一种极为重要的站点可靠性工程工具。它能够高效吸纳观察数据、参与数据以及来自第三方工具的数据,判断系统运行状态并保证其处于最佳...

    至顶网5972021-03-08
  • 编程技术2021年值得关注的React PDF 库

    2021年值得关注的React PDF 库

    今天,许多网络应用程序为其用户提供内置的PDF浏览选项。然而,选择一个并不容易,因为它们的功能远远超过显示PDF。在这篇文章中,我将评估5个React的...

    TianTianUp5232021-06-21
  • 编程技术简单、好懂的Svelte实现原理

    简单、好懂的Svelte实现原理

    本文会围绕一张流程图和两个Demo讲解,正确的食用方式是用电脑打开本文,跟着流程图、Demo一边看、一边敲、一边学...

    魔术师卡颂4822021-11-10
  • 编程技术让开发效率倍增的 VS Code 插件

    让开发效率倍增的 VS Code 插件

    今天来分享一些提升开发效率的实用 VS Code 插件!Better Comments 扩展可以帮助我们在代码中创建更人性化的注释,有不同形式和颜色的注释供我们选择。 ...

    前端充电宝7132022-04-21
  • 编程技术真正聪明的程序员,总有办法不加班

    真正聪明的程序员,总有办法不加班

    工作效率提升了,就可以少加班了,聪明的程序员,总会有一堆可以提升编码效率的工具?当一种工具满足不了工作需求,就去探索新的,今天纬小创就给...

    今日头条12482021-03-04
  • 编程技术用户态 Tcpdump 如何实现抓到内核网络包的?

    用户态 Tcpdump 如何实现抓到内核网络包的?

    在网络包的发送和接收过程中,绝大部分的工作都是在内核态完成的。那么问题来了,我们常用的运行在用户态的程序 tcpdump 是那如何实现抓到内核态的包...

    开发内功修炼11612021-09-08