认识微前端:一种用于前端 Web 开发的微服务

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: 对于Web应用来说,前端越来越大,后端越来越不重要。现代 Web 应用程序 80%-90% 的代码为前端代码,后端代码非常少。可以想象,现在大多数新的web应用程序都面临着类似的情况。

对于Web应用来说,前端越来越大,后端越来越不重要。现代 Web 应用程序 80%-90% 的代码为前端代码,后端代码非常少。可以想象,现在大多数新的web应用程序都面临着类似的情况。

Web 应用程序也会随着时间而变化,开发技术和框架也是如此。这需要支持允许不同的前端框架共存,例如在Vue2中构建的旧模块需要与React或者Vue3中构建的新模块集成。

单体式应用越来越臃肿

对大型前端应用程序采用单一方法将变得笨重,需要有一种方法将其分解为可以独立运行的较小模块。

例如:

  • apps.devpoint.cn/micro:使用静态HTML构建的入口页面
  • apps.devpoint.cn/settings:使用vue2构建的旧模块
  • apps.devpoint.cn/dashboard:使用vue3构建的新模块

接下来需要做一下几件事:

  • 一个纯JavaScript的代码库,管理路由和用户会话,还有一些公共的CSS。两者都应该尽可能的轻。
  • 一个单独的模块集,“小应用程序”,构建于各种框架,存储在不同的代码库中。
  • 一个部署系统,它将来自不同代码库的所有模块集成在一起,并在模块更新时部署到服务器。

解决方案是微前端

事实证明,很多公司在使用相同的方法,常用术语叫“微前端(Micro frontends)”。Micro Frontends 一词于 2016 年底首次出现在 ThoughtWorks Technology Radar 中,将微服务的概念扩展到前端领域。在微服务框架里面可以构建一个功能丰富且功能强大的浏览器应用程序,即单页应用程序,使其位于微服务架构之上。随着时间的推移,前端面临不断增长的需求和难以维护代码,这就是常说的前端单体架构。

微前端背后的思路是将网站或 Web 应用程序视为由独立团队开发拥有的功能组合。每个团队都有自己关心和专攻的不同业务或任务领域。团队是跨职能的,从数据库到用户界面、端到端地开发其功能。

前端单体架构

image.png

微前端架构

image.png

实现微前端

以下是实现微前端的几种常见的方法,但不限于以下方案:

  1. Single-SPA(一个前端微服务的javascript框架):它可以在同一个页面上组合多个框架,而不需要刷新页面(请看这个集成了React、Vue、Angular 1、Angular 2等DEMO)。
  2. 通过URL的不同集成多个单页应用程序:这些应用程序使用 npm/bower 组件实现集成。
  3. 将微应用隔离到 iframe 中使用库和 Window.postMessage API进行协调。iframe 数据状态共享由其父窗口公开的API。
  4. 通过共享事件总线(例如 eev )实现不同的模块间的通信,每个模块使用自己的框架构建,只要处理传入和传出事件。
  5. 使用 Varnish Cache 集成不同的模块。
  6. Web组件集成:Web 组件是作为 W3C 规范提出的一组标准。允许创建可以导入到 Web 应用程序中的可重用组件,就像可以导入任何网页的小部件。可以将Web组件与后端一起打包到微服务中,将前端应用程序简化为路由,并由路由来对不同Web组件进行编排。
  7. “Blackbox”React 组件。

资源

  • Single-SPA框架(请参见上文)。
  • micro-frontends.org( GitHub仓库 ),包含“与多个独立团队一起构建现代 Web 应用程序的技术、策略和方法”。
  • Project Mosaic,一组支持大型网站微服务风格架构的库。


相关文章
|
3月前
|
并行计算 前端开发 JavaScript
Web Worker:让前端飞起来的隐形引擎
在现代 Web 开发中,前端性能优化是一个至关重要的课题,尤其是对于计算密集型的应用,如图像处理、视频处理、大规模数据分析等任务。单线程的 JavaScript 引擎常常成为性能瓶颈,导致应用变得迟缓。Web Worker,作为一种强大的技术,使得前端能够在后台进行并行计算,从而实现高效的任务处理,不影响主线程的运行和用户的交互体验。
420 108
|
1月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
216 4
|
3月前
|
JSON 监控 前端开发
AMIS:百度开源的前端低代码神器,18.4k star 背后的开发效率提升利器
AMIS(前端低代码框架)是百度开源的低代码前端框架,基于纯 JSON 配置即可生成完整后台页面,包括表单、表格、图表、CRUD 列表,支持可视化拖拽编辑。,星标数已达 18.4k,百度内部已沉淀超过 5 万个页面,广泛应用于审核系统、数据管理后台、模型监控等落地场景
804 0
|
3月前
|
JavaScript 前端开发 Java
前端框架选择之争:jQuery与Vue在现代Web开发中的真实地位-优雅草卓伊凡
前端框架选择之争:jQuery与Vue在现代Web开发中的真实地位-优雅草卓伊凡
464 72
前端框架选择之争:jQuery与Vue在现代Web开发中的真实地位-优雅草卓伊凡
|
2月前
|
人工智能 前端开发 JavaScript
前端工程化演进之路:从手工作坊到AI驱动的智能化开发
前端工程化演进之路:从手工作坊到AI驱动的智能化开发
558 18
前端工程化演进之路:从手工作坊到AI驱动的智能化开发
|
5月前
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!
|
5月前
|
JavaScript 前端开发 API
鸿蒙5开发宝藏案例分享---Web加载时延优化解析
本文深入解析了鸿蒙开发中Web加载完成时延的优化技巧,结合官方案例与实际代码,助你提升性能。核心内容包括:使用DevEco Profiler和DevTools定位瓶颈、四大优化方向(资源合并、接口预取、图片懒加载、任务拆解)及高频手段总结。同时提供性能优化黄金准则,如首屏资源控制在300KB内、关键接口响应≤200ms等,帮助开发者实现丝般流畅体验。
|
前端开发 JavaScript Shell
鸿蒙5开发宝藏案例分享---Web页面内点击响应时延分析
本文为鸿蒙开发者整理了Web性能优化的实战案例解析,结合官方文档深度扩展。内容涵盖点击响应时延核心指标(≤100ms)、性能分析工具链(如DevTools时间线、ArkUI Trace抓取)以及高频优化场景,包括递归函数优化、网络请求阻塞解决方案和setTimeout滥用问题等。同时提供进阶技巧,如首帧加速、透明动画陷阱规避及Web组件初始化加速,并通过优化前后Trace对比展示成果。最后总结了快速定位问题的方法与开发建议,助力开发者提升Web应用性能。
|
5月前
|
JSON 开发框架 自然语言处理
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(三)
本文主要介绍了应用开发中的三大核心内容:生命周期管理、资源限定与访问以及多语言支持。在生命周期部分,详细说明了应用和页面的生命周期函数及其触发时机,帮助开发者更好地掌控应用状态变化。资源限定与访问章节,则聚焦于资源限定词的定义、命名规则及匹配逻辑,并阐述了如何通过 `$r` 引用 JS 模块内的资源。最后,多语言支持部分讲解了如何通过 JSON 文件定义多语言资源,使用 `$t` 和 `$tc` 方法实现简单格式化与单复数格式化,为全球化应用提供便利。
252 104
|
5月前
|
JavaScript 前端开发 API
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(二)
本文介绍了HarmonyOS应用开发中的HML、CSS和JS语法。HML作为标记语言,支持数据绑定、事件处理、列表渲染等功能;CSS用于样式定义,涵盖尺寸单位、样式导入、选择器及伪类等特性;JS实现业务逻辑,包括ES6语法支持、对象属性、数据方法及事件处理。通过具体代码示例,详细解析了页面构建与交互的实现方式,为开发者提供全面的技术指导。
270 104

热门文章

最新文章