微前端简介
在微前端中,我们将一个整体应用程序划分为多个较小的应用程序。
每个应用程序负责整体应用程序的独特功能。
例如,
一个电子商务应用程序可以分为以下较小的独立微前端应用程序。
- 产品列表
- 购物车
- 运送
- 付款
- 追踪
- 客户服务等
为什么选择微前端?
- 多个团队可以独立工作,专注于一个 MFE 应用。
- 代码复用性非常高。
- 每个团队可以自由选择自己的技术(React/Angular/Vue)、部署、开发策略等
- 如果一个应用程序出现故障,其余应用程序仍然可以运行。
- 每个 MFE 应用程序都较小,因此易于理解和更改。
单体应用程序架构与微前端应用程序架构
单体应用程序:-单个应用程序中网络应用程序的所有功能。
微前端应用程序:-每个功能都由独立的 MFE 应用程序管理,即
MFE #1 负责 App-bar。
MFE #2 负责产品列表。
MFE #3 负责侧导航栏。
容器应用程序负责协调这些 MFE 应用程序。
MFE 应用程序如何相互集成
- 构建时集成(编译时集成)
- 运行时集成(客户端集成)
- 服务器端集成(SSR 集成)。
构建时集成(编译时集成)
在此集成中,容器应用程序可以访问所有 MFE 应用程序源代码,并且在加载到浏览器中之前构建/编译容器应用程序时会创建一个组合包。
优点
- 设置和理解非常简单。
- MFE 可以通过延迟加载来提高性能。
缺点
- 每次在 MFE npm 包中进行任何更改时,都需要重建并重新部署容器应用程序。
- 如果多个 MFE 将与容器应用程序紧密耦合,那么 MFE 应用程序就有可能成为分布式整体应用程序。
- 简而言之,您的 MFE 与类似于 NPM 包的容器应用程序集成。
MFE 应用程序如何集成到构建时集成(此处以电子商务应用程序为例)
- 团队 #1,开发产品列表 MFE 应用程序。
- 团队 #1 部署 Products-List MFE 应用并将其发布为 NPM 包。
- 团队 #2,管理容器应用程序,包括 Products-List MFE 应用程序作为容器应用程序中的 NPM 包依赖项。
- 团队 #2,编译和构建容器应用程序包,该包包含容器应用程序的代码,包括 Products-List MFE 应用程序代码。
- 简而言之,您的 MFE 与类似于 NPM 包的容器应用程序集成。
- 就是这样。
运行时集成(客户端集成)
在此集成中,一旦容器应用程序加载到浏览器中,它就可以使用 MFE 应用程序的 url 访问 MFE 应用程序。
优点
- 每个 MFE 都可以部署,无需重新部署容器应用。
- 可以使用同一个MFE应用程序的不同版本,容器可以决定使用哪个MFE版本以及何时使用,这使得测试和集成变得容易。
- 每个 MFE 应用程序都可以有自己的工具和库用于开发目的。
缺点
- 运行时 MFE 的设置和集成比构建时 MFE 更复杂。
MFE 应用程序如何集成到运行时集成(此处以电子商务应用程序为例)
- 团队 #1,开发产品列表 MFE 应用程序。
- 团队 #1 部署 Products-List MFE,即 https://mystore.in/productslist.js
- 团队#2,管理容器应用程序,将使用 webpack-module-federation 将其与容器应用程序集成。
- 当用户打开 https://mystore.in/ 时,容器应用程序将加载到浏览器中并获取 Products-List MFE 应用程序并将其显示在容器应用程序页面中定义的位置。
- 就是这样。
服务端集成(SSR 集成)
在此集成中,微前端应用程序的工作方式与 SSR 组件的工作方式类似。所有MFE应用程序都集成在服务器端,并且复合容器应用程序返回到浏览器。
优点
- 应用加载速度更快。
- SEO 友好的方法。
缺点
互动性有限。
发展挑战。
现在就这样,谢谢您的宝贵时间。
以上是微前端简介的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。
