您现在的位置是:亿华云 > 域名
聊聊微前端那些事儿
亿华云2025-10-08 19:11:29【域名】6人已围观
简介什么是微前端根据Micro-Frontend 官网的定义,微前端是将网站或者 web 应用程序视为由独立团队拥有的功能组合。这么说你可能会感到难以理解,通俗地讲,微前端就是各个仓
根据Micro-Frontend 官网的定义,微前端是微前将网站或者 web 应用程序视为由独立团队拥有的功能组合。这么说你可能会感到难以理解,端那通俗地讲,事儿微前端就是聊聊各个仓库组件独立,彼此可以独立开发和部署,微前它们彼此之间互不影响,端那通过通信进行沟通,事儿它们整体对外提供一个完整的聊聊服务。
提到微前端,微前就不得不提微服务,端那可以说很多前端的事儿想法或者逻辑概念,都是聊聊从后端演变出来的,曾经有人开玩笑地说,微前正是端那从那些原来做后端的人开始转向前端之后,前端就开始变得越来越复杂了。
微服务是一种开发软件的架构和组织方法,其中软件由通过明确定义的 API 进行通信的小型独立服务组成。这些服务由各个小型独立团队负责。源码库
微服务架构使应用程序更易于扩展和更快地开发,从而加速创新并缩短新功能的上市时间。
为什么要微前端之前我们的web应用都属于胖服务器,也就说所有处理都有服务器进行,而前端只是负责简单的展示,而现在的情况是,服务器处理的内容很少,很多时候都需要前端进行各种计算和处理。在这种情况下,就需要我们采用微前端来加快前端产品的开发和迭代。
微前端优点更容易和更快的功能开发。独立部署;跨职能团队;平行发展;松耦合;明确的合同;更容易添加、更改或删除任何代码;更容易测试。构建微前端应用程序有不同的方法,但主要我们可以将它们分为四个重要方面:
路由微前端组成微前端微前端通信定义微前端微前端的组合微前端由客户端,服务器端,边缘测组合而成。
客户端:所有微前端都是在构建时组合和捆绑的。路由主要取决于组合的类型。在服务器端组合中,路由是通过服务器端完成的,因为整个应用程序逻辑都在服务器上。在边缘组合中,CDN 是突出的参与者,因为它通过基于请求的页面 URL 在边缘级别通过嵌入将它们组装在一起来为微前端提供服务。
在客户端组合中,微前端是根据需求和应用程序的当前状态加载的。例如,如果用户即将认证,则会加载认证微前端或加载登陆页面。
除了上述路由技术,我们还可以根据需要使用智能路由来配置应用程序。例如,如果我们使用将微前端加载为单页应用程序的应用程序外壳。b2b供应网然后,app shell 是所有路由逻辑的中心命令。app shell 将管理所有路由逻辑,然后根据其配置决定加载哪个微前端。当我们有复杂的路由时,这是最好的方法之一,因为只有一个故障点或配置。
微前端之间的通信与路由一样,微前端之间的通信也取决于组合的类型。当我们在相同或不同页面上使用多个微前端时,我们总是希望可以和其他微前端用户交互。
不同微前端之间的沟通可能不是那么微不足道,尤其是当有不同的团队构建它们时。为了维持独立部署的原则,我们需要确保每个微前端都不知道其他微前端,即使它们是水平分割的并且是同一页面的一部分。
在这种情况下,我们有几个选项可以更好地沟通。
我们可以在前端开发中注入事件总线机制,允许解耦的组件通过在同一视图中发出事件或总线和不同的微前端来相互通信。如果组件感兴趣,它们可以监听这些事件并做出反应。
我们可以通过添加一个容器来实例化事件总线并将其注入页面的所有微前端来创建它。
或者,我们也可以使用自定义事件。这些是具有自定义负载的自定义事件。有效负载包括标识事件的字符串和为事件自定义的可选对象。这些自定义事件通过一个常见的类似对象的窗口进行调度,以便所有微前端都可以使用它。
定义微前端在微前端我们可以使用不同的技术栈,我们可以将vue和react进行结合使用。其中可以单独为vue构建自己的single-spa,为react构建自己的single-spa,最后两者通过webpack共同引入使用,并且两者也可以独立访问。具体的代码在github上有很多实例。
结论无论是微前端还是微服务,本质上都是为了让项目开发迭代变得更快,如果因为采用了某个技术而导致项目本身出现了各种问题,我们就是在本末倒置。
很赞哦!(961)
相关文章
- 在此期间,他们每天仍在这里卖大米,在理财方面个人感情有待提高。因为现在是收米的最佳时机。
- 自研ES+HBase+纯内存的高性能毫秒级查询引擎
- 一个具体场景剖析业务中台和数据中台的关系
- 用Lgwr Worker 的例子介绍 Strace 分析 Oracle 数据库行为的方法
- a、变更前的公司证件扫描件(代码证或者营业执照)及联系人身份证复印件、变更后的公司证件扫描件(代码证或者营业执照)及新的联系人身份证复印件;身份证复印件需本人签名,公司证件复印件需加盖公章。
- 图解设计模式:身份认证场景的应用
- Spring Boot 发送邮件,端口号大有玄机!
- 我被嘲笑了:被查询的列,为啥要放到索引里?
- ICANN 规章禁止转移已经被记录或者在60天前内转移的域名。
- Go1.18 新特性:引入新的 Netip 网络库