建设企业级微前端方案.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《建设企业级微前端方案.pptx》由用户(无敌的果实)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 建设 企业级 前端 方案
- 资源描述:
-
1、建设企业级微前端方案张浩 网易资深前端工程师 网易严选数据产品前端负责人 致力于工程化与效率工具、企业级应用架 Angular爱好者 为什么要微前端网易严选微前端建设背景 网易严选企业级微前端架构 微前端带来的优化与变革 总结与思考1为什么要微前端?网易严选微前端建设背景业务背景业务背景在大量SPA项目(100+)的开发实践中,我们总结了一些传统SPA开发模式的困境。传统SPA开发模式困境巨石应用的维护困难巨石应用传统SPA开发模式困境技术栈的更替与变迁传统SPA开发模式困境跨系统复用困难大型业务功能模块的跨系统复用-npm包模式跨系统工单-业务流转跨系统工单-开发模式传统SPA开发模式困境跨
2、多团队合作开发困难跨多团队合作开发困难破局破局一击,微前端。什么是微前端?微前端是多个小型前端应用聚合为一的应用,它们彼此项目分离但又运营聚合。2网易严选企业级微前端架构常见微前端方案在此之前,我们先来简单了解下当前几种主流的微前端方案。常见微前端方案MPA + 路由分发这种方式就是在多个独立的 SPA 应用之间跳转,通过把界面、导航、皮肤做成类似的样子,让用户感觉像是同一个应用。优点:a. 框架无关;b. 独立开发、部署、运行; c. 应用之间 100% 隔离。缺点:a. 应用之间的彻底割裂导致复用困难。(比如,每个应用左侧和顶部都带有导航,那么, 当我要把该应用在其他系统中复用时,需要对该
3、子应用的导航做较为复杂的改动) ;b. 每个独立的 SPA 应用加载时间较长,容易出现白屏,影响用户体验;c. 后续如果要做同屏多应用,不便于扩展。常见微前端方案类 Single-SPA这种模式一般分为主应用和子应用。主应用的代码一般非常简单,仅作为加载容器,管理子应用的生命周期。主应用捕获全局的路由事件,基于当前路由判断需要加载哪个子应用。比如路由为 /vue,我们就加载 /vue 子应用;路由为/react,我们就加载 /react 子应用。当然,在路由切走后,也要卸载该应用。优点:a. 框架无关;b. 独立开发、部署、运行;c. 项目自由切割,应用可以自由组合,方便复用;d. 便于自由扩
4、展功能。缺点:a. 子应用需要实现 mount、unmount 等钩子,侵入式的代码开发体验并不友好;b. 全局污染和资源竞争。常见微前端方案基座式 SPA,主从应用设计原理和single-spa有点类似。不同点在于基座会包含应用依赖的绝大多数环境,包括基础框架、基础组件与第三方依赖包。当我们的主应用启动之后,基本就有了全套的运行时环境。同时路由这块也有点区别,子应用一般会把自己的路由注册到主应用中,并不接管系统路由。子应用更像是主应用的一个“路由模块”。优点:显而易见,这种模式打包出来的子应用只包含了业务代码,体积小、加载快、用户体验好。缺点:缺点也很明显,首先基座就决定了它是框架强相关的,
5、哪怕是基座的版本升级迭代,也会非常容易造成子应用 break change;同时需要自定义方案来解决公共依赖的管理和加载,增加项目维护的复杂度。常见微前端方案传统 SPA + 组件化(比如 Web Components) + 私有 npm 源通用的一些业务功能发布成组件,通过私有 npm 的方式去维护和管理。其中,跟框架无关又比较有代表性的方案就属 Web Components 了。当然,这种模式更像是业务组件,或者说业务模块,而不是应用。优点:对现有项目渐进式增强,逐步改进。缺点: 随着业务中组件数量的爆发式增加,组件粒度通信、组件的维护成本都急剧增加;并不能做到真正的独立开发、测试、部署。
6、常见微前端方案网易严选企业级微前端方案网易严选微前端是怎么建设的呢?网易严选企业级微前端方案严选的微前端方案,在 Single-SPA 的思想上进行了大刀阔斧的改革和创新,同时借助 Node 层(数据层、服务端渲染、静态资源处理)来作为支撑,可以说形成了一个较有特色的微前端应用体系。严选微前端整体架构网易严选企业级微前端方案网易严选企业级微前端是一整套包括规范、工具、主框架、配置中心、应用监控等一系列相关功能在内的前端应用架构体系。网易严选企业级微前端方案下面来具体看以下严选微前端的具体设计。微前端设计Par t 1应用抽象应用抽象应用抽象应用抽象单个APP构成应用加载与路由策略Par t 2
7、应用加载与路由策略应用加载与路由策略url: http:/ 主应用是微前端框架的承载体。包括主框架渲染,路由监听,应用隔离,应用通信。2. 子引用启动后接管系统路由,与一个独立运行的完整应用没有本质区别。3. 按照约定 path 的规则获取entry statics。【约定优于配置】的思路可以使我们的代码变得简单,避免需要在代码中手动维护router和entry的对应关系。应用隔离Par t 3应用隔离为什么要应用隔离应用从加载,运行到卸载,会对全局产生一些污染,包括但不限于: 添加/删除/修改全局变量。 绑定全局事件。 全局定时器/requestAnimationFrame 修改原生方法或对
展开阅读全文