资料地址1:https://pan.baidu.com/s/1RDw4vTqKl-a93Dhvwg2TVQ 提取码: db2n
资料地址2:https://share.weiyun.com/xZzgNn8U 密码:nwavm8
一. 什么是微前端
“微前端架构”就是构建基于微服务的前端应用架构。其思想是将前端应用切分为一系列可以单独部署的松耦合的应用,然后将这些应用组装起来创建单个面向用户的应用程序。
二. 微前端的优势
降低代码耦合
独立开发、独立部署
增量升级:微前端是一种非常好的实施渐进式重构的手段和策略
独立运行时,每个微应用之间状态隔离,运行时状态不共享
团队可以按照业务垂直拆分更高效
三、微前端是一种前端架构模式,它将Web应用程序拆分为一组小型、可独立开发和部署的模块,每个模块可以由不同的团队开发和维护。这种模块化的架构可以帮助开发团队降低Web应用程序的规模和复杂度,从而提高应用程序的可维护性和可扩展性。
微前端的概念最早由ThoughtWorks公司的技术总监Cam Jackson在2016年提出。他认为,微前端可以帮助团队将大型Web应用程序拆分为小型模块,从而更好地满足不同业务需求,提高应用程序的可维护性和可扩展性。自此之后,微前端逐渐成为了一种前端技术趋势,得到了越来越多的关注和支持。
微前端的背景源于大型Web应用程序的发展和演进。随着Web应用程序的规模和复杂度的不断增加,前端开发团队面临越来越多的挑战,例如开发和维护难度大、代码耦合度高、性能问题等等。微前端通过将Web应用程序拆分为小型、可独立开发和部署的模块,从而降低了这些挑战的难度,提高了Web应用程序的可维护性和可扩展性。
四、微前端的挑战包括:
技术复杂度:微前端需要使用一些新的技术和工具来实现模块化开发、模块间通信和集成等功能,需要开发团队具备一定的技术实力和经验。
项目规模限制:微前端适用于大型Web应用程序,但对于小型应用程序,可能会带来过度的复杂度和不必要的开销。
性能问题:微前端需要在运行时动态加载模块,可能会影响应用程序的性能和响应速度,需要通过一些优化措施来解决。
跨域问题:微前端需要在不同的域名下部署不同的模块,可能会带来跨域问题,需要通过一些跨域解决方案来解决。
五、micro 模块
micro-app 是京东零售推出的一款微前端框架,它基于类 WebComponent 进行渲染,从组件化的思维实现微前端,旨在降低上手难度、提升工作效率。它是目前接入微前端成本最低的框架,并且提供了JS沙箱、样式隔离、元素隔离、预加载、资源地址补全、插件系统、数据通信等一系列完善的功能。
MicroApp借鉴了WebComponent的思想,通过CustomElement结合自定义的ShadowDom,将微前端封装成一个类WebComponent组件,实现微前端的组件化渲染。在此基础上,通过实现JS隔离、样式隔离、路由隔离,降低子应用的接入成本,子应用只需设置允许跨域请求,不需要改动任何代码即可接入微前端,使用方式和iframe几乎一致,但却没有iframe存在的问题。
用于给应用赋能微前端,使其成为主应用,能够内部接入子应用。
入口index.js:用于和主应用初始化接入;
appConfigs.js:用于配置要接入子应用的相关信息;
commonApi.js:公用的接口函数,透传给子应用使用;
appTemplate.vue:子应用展示容器,类似于iframe效果;
router.js:主应用中处理过后的子应用路由地址,最后合并接入到主应用路由文件。
六、集成与部署策略
在微前端架构中,集成与部署策略是至关重要的。以下是一些常见的集成与部署策略:
构建时集成:在主应用的构建过程中,将微应用的代码打包到主应用的代码中。这种方式适用于微应用较少且更新不频繁的情况。
运行时集成:主应用在运行时动态加载微应用的代码。这种方式可以实现微应用的独立部署和按需加载,适用于微应用较多且更新频繁的情况。
独立部署:每个微应用都可以独立部署,主应用通过配置来管理微应用的版本和加载地址。这种方式可以实现微应用的并行开发和持续集成/持续部署(CI/CD),提高开发效率。
容器化部署:使用Docker等容器化技术将每个微应用打包成容器进行部署。这种方式可以实现微应用的环境隔离和弹性扩展。
有疑问加站长微信联系(非本文作者)