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

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

 

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

什么是微前端

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。这是一个标准的服务器端构图。

 

责任编辑:华轩 来源: 今日头条
相关推荐

2023-04-04 07:15:01

2024-01-09 13:43:05

CMSCRM

2009-04-24 08:26:02

Mobile Mark移动OS

2015-09-06 09:50:59

创业大数据

2018-07-30 08:20:39

编程语言Python集合

2015-07-23 09:20:19

mmap

2016-05-06 08:08:29

2012-02-17 16:37:20

云计算

2017-02-16 07:37:19

前端程序软件

2022-05-20 11:25:59

中台计算数据

2018-02-07 00:00:00

数字化转型

2020-07-28 08:09:02

领域驱动设计

2019-03-11 09:44:09

欺骗勒索软件攻击

2023-12-08 10:59:49

2022-01-06 15:20:43

苹果中台架构

2015-09-08 09:20:49

案例研究混合云云部署

2022-04-20 07:48:09

微服务链路服务器

2014-07-24 09:50:55

Unix开源系统

2018-08-02 15:24:05

RPCJava微服务

2017-09-20 16:22:35

谷歌
点赞
收藏

51CTO技术栈公众号