前言YseraMicroServer是一个基于qiankun的微前端平台解决方案。基于qiankun的沙箱能力,重新定义通信机制和访问方式,以及ui快照能力,提供快速接入微前端的解决方案。本文将从业务背景、实现思路、运行机制等方面进行阐述。背景在业务中,我们会遇到两种情况:第一种是将多个平台集成到一个门户中。由于前期平台能力的拆分,或者不同的团队,完整链路上的能力拆分在不同的平台上,这样对于运营来说效率低下(需要在不同的平台之间切换),集成到一个入口可以有效的降低平台切换成本;二是在技术层面对平台进行拆解,从而降低代码的复杂度,也可以在新的需求中实现更新的技术。在以上2种情况下,他们其实都在做一件事,那就是“它看起来(使用)像一个平台”。“微前端”旨在解决这个问题。‘qiankun’是业界比较成熟的方案,所以我们整个方案还是以qiankun为基础,结合我们的技术业务场景衍生出YseraMicroServer。实现方式业务中的微前端接入项目已经运行了很长时间,每个项目的负责人也不同。如何降低项目接入成本,降低项目代码的侵入性,是我们考虑的核心目标。在方案设计思路上:1是保证渲染框架足够简单。这里的简单是指它只做一件事,就是子应用渲染;2是主、子应用的通信标准化,降低了开发者的学习成本;3是集成了接入方式的平台化,进一步降低了微前端应用的研发成本。因此,微前端应用整体研发规划如下:核心渲染逻辑:应用的渲染通过路由匹配进行,整个渲染过程提供事件通信机制。(如下图所示)其中,1.如何让框架变得简单,通过以下三个方面:1.非侵入式应用访问○子应用不需要修改访问,管理挂载和运行时的子应用数量通过主应用进行子应用渲染。2.UIsnapshot○子应用在渲染过程中,会在body上挂载dom,这些额外的dom是子应用独有的,切换到其他子应用时应该返回到原来的dom树状态,所以就有了ui快照的解决方案;快照生成会在子应用加载前出现,子应用卸载后使用快照返回dom树的初始状态。3、事件机制○通过通用事件监听方法addEventListner,减少开发者的使用同步,同时通过渲染过程中的事件抛出,供子应用使用。最后,微前端能力建设颠覆了传统的研发模式,拓展了业务边界。未来我们会持续关注每个业务员的接入成本和渲染效果。
