什么是微前端

作者: kyo_f89f | 来源:发表于2019-09-28 20:43 被阅读0次

引言

微服务架构使我们能够编写可扩展且敏捷的后端系统。编写独立的,独立的服务使我们能够灵活地快速添加新功能或轻松更改现有功能,而不会影响整个系统。可独立部署的服务还使我们能够根据需求扩展服务。

在前端应用程序中使用类似的方法。前端微服务化,将单片式Web应用分解为多个微前端的策略。

什么是微前端架构?

微型前端架构是一种将Web应用程序开发为小型前端应用程序的方法。该应用程序没有编写大型的整体式前端应用程序,而是细分为特定于域的微前端,这些前端是独立的,可以独立开发和部署。

使用微型前端有什么优势?

微前端将微服务的概念和好处带到了前端应用程序中。每个微型前端都是独立的,因此可以更快地交付,因为多个团队可以在应用程序的不同部分上工作而不会互相影响。这也使每个团队可以自由选择所需的不同技术。由于微前端高度解耦,因此它们对应用程序其他部分的影响较小,可以独立进行增强和部署。

微前端架构设计时有什么注意事项?

1. 单一责任

首先要考虑的是如何将一个应用程序拆分为多个较小的应用程序,以便可以独立开发和部署每个应用程序。当团队在不同的微型前端上工作时,我们希望这些应用程序高度分离,以使一个应用程序中的更改不会影响其他应用程序。

这可以通过构建具有单一职责和定义明确的有界上下文的特定于领域的微前端来实现。就像我们的代码一样,我们希望我们的微前端具有高内聚性和低耦合性,即所有相关的代码应该彼此靠近,并且对其他模块的依赖性较小。

如果以在线购物网站为例,我们希望在产品微前端中包含所有与产品相关的UI组件,并在订单微前端中获得所有与订单相关的功能。假设我们有一个用户仪表板屏幕,用户可以在其中查看来自不同域的信息,他们可以查看待处理的订单以及特价产品。建议不要将待处理的订单UI组件作为订单微前端的一部分,而将与产品相关的组件作为产品微前端的一部分,而不是创建一个仪表板微前端。这将使我们能够垂直拆分系统,并具有特定于域的前端和后端服务。

2. 通讯和数据交换的通用接口

为了使微前端作为单个Web应用程序和谐地工作,它们需要一种通用且一致的方式来相互通信。即使他们是高度独立的,他们仍然需要互相交谈。常见方法之一是拥有一个可用作集成层的应用程序。该应用程序可以充当容器来呈现不同的微前端,并促进它们之间的通信。

例如,在我们的在线购物网站中,一旦用户通过购物车微型前端提交了订单,我们就希望将该用户带到他们的订单列表屏幕。由于订单和购物车微型前端之间的耦合程度很高,并且彼此之间并不了解,因此我们可以将容器应用程序用作业务流程层。

在从购物车微型前端接收到订单提交事件后,容器应用程序会将用户导航到订单微型前端。容器应用程序还可用于处理跨领域问题,例如用户会话管理,分析等。

此方法与现有的一体式前端很好地结合使用,其中现有的一体式应用程序可以用作容器,并且任何新功能都可以独立开发为微型前端,并且可以集成到现有的应用程序中。还可以根据需要提取现有功能并将其重写为微前端。

3. 外观一致

尽管我们的用户界面被划分为多个微型前端,但我们仍然希望我们的用户感觉好像他们正在与单个应用程序进行交互。我们希望我们的应用具有一致的外观和风格,以及能够在多个应用之间轻松更改UI的功能。例如,我们应该能够在多个微前端中更改字体或原色。这可以通过共享CSS和资源(例如图像,字体,图标等)来完成。

我们还希望应用程序使用相同的UI组件,例如,如果我们在多个屏幕上都有日期选择器,则我们希望所有日期选择器看起来都一样。这可以通过创建UI组件的公共库来实现,该库可以由微前端共享。使用共享资产和UI组件库将使我们能够轻松进行更改,而不必更新多个微型前端。

在本文中,我们讨论了微前端,它们的好处以及在迁移到微前端架构之前要考虑的事项。为了提供更快的速度,我们希望能够独立构建,测试和部署功能,而这可以通过使用微前端和微服务来实现。实施微型前端可能会面临自身的挑战,将有技术上的障碍需要克服,但好处多于复杂性。

相关文章

  • 微前端导读

    为什么需要学习微前端?我们通过3w(what,why,how)的方式来讲解微前端 1、什么是微前端? 微前端就是将...

  • 什么是微前端

    引言 微服务架构使我们能够编写可扩展且敏捷的后端系统。编写独立的,独立的服务使我们能够灵活地快速添加新功能或轻松更...

  • 基于Umi探索微前端以及其融合方案

    写在前面 “微前端”这个概念已经在前端圈火了很长一段时间了,关于什么是微前端,微前端干了什么,其和传统iframe...

  • single-spa微前端简单实践与优化思路

    微前端简单实践 什么是single-spa或者说什么是微前端 微前端是指存在于浏览器中的微服务。 微服务大家应该都...

  • 微前端——乾坤qiankun Demo

    微前端——qiankun(乾坤)实例 一、什么是微前端 微前端就是将不同的功能按照不同的维度拆分成多个子应用。通过...

  • 了解什么是微前端

    作为前端开发人员,这些年来你一直在开发单体应用,即使你已经知道这是一个不好的做法。 您将代码划分为组件,使用req...

  • 万字长文+图文并茂+全面解析 qiankun 源码 - qian

    本文将针对微前端框架 qiankun 的源码进行深入解析,在源码讲解之前,我们先来了解一下什么是 微前端。 微前端...

  • 快速上手微前端框架 icestark (一)

    思考 微前端设计理念是什么? 解决了什么问题? 微前端本质和后端微服务理念是一样的,微前端解决方案一般包含如下特点...

  • 无星的微前端之旅(一)——微前端选型

    微前端是什么 我觉得没有什么说的必要,可以百度到 微前端能解决什么 也没有什么必要赘述 微前端能为我们带来什么 不...

  • single-spa 微前端部署

    什么是微前端 微前端指的是在于浏览器中得微服务。 微前端是用户界面中的一部分,可以分割为多个react、Vue、A...

网友评论

    本文标题:什么是微前端

    本文链接:https://www.haomeiwen.com/subject/uoxtpctx.html