基于微前端架构的子应用运行方法、电子设备及存储介质技术

技术编号:33834266 阅读:39 留言:0更新日期:2022-06-16 11:40
本申请公开了一种基于微前端架构的子应用运行方法、电子设备及存储介质,涉及互联网技术领域。首先构建用于在主应用中运行的子应用的入口组件,首先响应于加载子应用的触发请求,获取主应用资源,再利用入口组件依据入口地址执行子应用资源列表以获取子应用资源,最后利用入口组件创建用于子应用的沙箱,并将子应用资源注入沙箱,以加载子应用。本申请提供的基于微前端架构的子应用运行方法、电子设备及存储介质具有加载更多种脚本语言构建的子应用、加载速度更快以及加载更加便捷的优点。应用、加载速度更快以及加载更加便捷的优点。应用、加载速度更快以及加载更加便捷的优点。

【技术实现步骤摘要】
基于微前端架构的子应用运行方法、电子设备及存储介质


[0001]本专利技术涉及互联网
,具体地涉及基于微前端架构的子应用运行的方法、电子设备及存储介质。

技术介绍

[0002]随着互联网行业的快速发展,应用程序的项目复杂度剧增,业务需求也愈发庞杂。为了提高开发效率,前后端分离的架构已逐渐普及,前端和后端的开发、构建、部署和运行等流程都是独立运行。
[0003]随着前端工程化的兴起,前端应用体量也越来越大。因此,微前端技术架构被提出。微前端作为一种最近新的架构,在大型应用转变成多个更小、更简单的能够独立开发、测试、部署的小型应用的聚合。
[0004]目前已知的微前端架构的实现方案可以基于singleSPA、Qiankun等微前端框架来实现。
[0005]然而,当前的singleSPA、Qiankun等微前端框架可能不支持利用某些脚本语言构建模块来构建子应用。
[0006]同时,当前的singleSPA、Qiankun等微前端框架需要与主应用框架同步加载,这可能会影响主应用的存储空间大小以及主应用的加载速度。
[0007]另外,当前的singleSPA、Qiankun等微前端框架可能需要并掌控子应用的生命周期,并且子应用的接入需要进行特定预先配置,感知不同的运行场景来启动或以其他方式操作子应用。
[0008]本
技术介绍
描述的内容仅为了便于了解本领域的相关技术,不视作对现有技术的承认。

技术实现思路

[0009]因此,本专利技术的目的在于提供一种基于微前端架构的子应用运行、电子设备及存储介质,以解决现有技术中微前端框架加载子应用时存在诸多限制的问题。
[0010]在第一方面,本申请实施例提供了一种基于微前端架构的子应用运行方法,包括:
[0011]构建用于在主应用中运行的子应用的入口组件;
[0012]响应于加载所述子应用的触发请求,获取主应用资源;
[0013]解析所述主应用资源,以获取可执行的子应用资源列表;
[0014]加载所述入口组件,并获取所述子应用的入口地址;
[0015]利用所述入口组件依据所述入口地址执行所述子应用资源列表以获取子应用资源;
[0016]利用所述入口组件创建用于所述子应用的沙箱,并将所述子应用资源注入所述沙箱,以加载所述子应用。
[0017]可选地,所述子应用为基于ES模块实现的子应用。
[0018]可选地,创建用于所述子应用的沙箱,包括:
[0019]创建用于所述沙箱的窗口代理,所述窗口代理对接所述主应用的窗口对象和所述沙箱。
[0020]可选地,所述方法还包括:
[0021]响应于所述子应用访问第一目标变量的请求,确定所述沙箱内是否存在所述第一目标变量;
[0022]若是,则将所述沙箱中的第一目标变量发送至所述子应用;
[0023]若否,则通过所述窗口代理将所述主应用窗口对象中的第一目标变量发送至所述子应用。
[0024]可选地,所述方法还包括:
[0025]响应于所述子应用设置第二目标变量的请求,确定所述沙箱内是否存在所述第二目标变量;
[0026]若是,则对所述沙箱内的所述第二目标变量进行设置;
[0027]若否,则通过所述窗口代理确定所述主应用窗口对象中的第二目标变量是否可设置;
[0028]若是,则通过所述窗口代理设置主应用窗口对象中的第二目标变量;
[0029]若否,则保持主应用窗口对象中所述第二目标变量不变。
[0030]可选地,所述方法还包括:
[0031]响应于卸载所述子应用的触发请求,卸载所述入口组件,以卸载所述子应用。
[0032]可选地,所述构建用于在主应用中运行的子应用的入口组件,包括:
[0033]定义用于所述子应用的第一函数和第二函数;
[0034]所述方法还包括:
[0035]在所述子应用被加载后,记录所述子应用执行所述第一函数的操作;
[0036]所述响应于卸载所述子应用的触发请求,卸载所述入口组件,以卸载所述子应用,包括:
[0037]清除所述子应用执行的第一函数的所述操作。
[0038]可选地,所述方法还包括:
[0039]在所述子应用被加载后,记录所述子应用执行所述第二函数的操作和对所述沙箱的操作;
[0040]所述响应于卸载所述子应用的触发请求,卸载所述入口组件,以卸载所述子应用,还包括:
[0041]保留所述子应用执行的第二函数的所述操作和对所述沙箱的所述操作。
[0042]第二方面,本申请实施例还提供了一种基于微前端架构的子应用运行装置,包括:
[0043]处理单元,用于构建用于在主应用中运行的子应用的入口组件;
[0044]入口组件加载单元,用于响应于加载所述子应用的触发请求,获取主应用资源;
[0045]资源解析单元,用于解析所述主应用资源,以获取可执行的子应用资源列表;
[0046]入口组件加载单元还用于加载所述入口组件,并获取所述子应用的入口地址;
[0047]处理单元,用于利用所述入口组件依据所述入口地址执行所述子应用资源列表以获取子应用资源;
[0048]处理单元,还用于利用所述入口组件创建用于所述子应用的沙箱,并将所述子应用资源注入所述沙箱,以加载所述子应用。
[0049]第三方面,本申请实施例还提供了一种基于微前端架构的子应用运行方法,包括:
[0050]构建用于在主应用中运行的第一子应用的第一入口组件;
[0051]构建用于在主应用中运行的第二子应用的第二入口组件;
[0052]响应于从所述第一子应用切换到所述第二子应用的触发请求,获取主应用资源,卸载所述第一入口组件以卸载所述第一子应用;
[0053]解析所述主应用资源,以获取可执行的第二子应用资源列表;
[0054]加载所述第二入口组件,并获取所述第二子应用的入口地址;
[0055]利用所述第二入口组件依据所述入口地址执行所述第二子应用资源列表以获取第二子应用资源;
[0056]利用所述第二入口组件创建用于所述第二子应用的第二沙箱,并将所述第二子应用资源注入所述第二沙箱,以加载所述第二子应用。
[0057]可选地,所述构建用于在主应用中运行的第一子应用的第一入口组件,包括:
[0058]定义用于所述第一子应用的第一函数和第二函数;
[0059]所述卸载所述第一入口组件以卸载所述第一子应用,包括:
[0060]清除所述第一子应用执行的所述第一函数的操作。
[0061]可选地,所述第一子应用和第二子应用为基于ES模块实现的子应用。
[0062]第四方面,本申请实施例还提供了一种基于微前端架构的子应用运行装置,包括:
[0063]入口组件构建单元,用于构建用于在主应用中运行的第一子应用的第一入口组件;
[0064]入口本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于微前端架构的子应用运行方法,其特征在于,包括:构建用于在主应用中运行的子应用的入口组件;响应于加载所述子应用的触发请求,获取主应用资源;解析所述主应用资源,以获取可执行的子应用资源列表;加载所述入口组件,并获取所述子应用的入口地址;利用所述入口组件依据所述入口地址执行所述子应用资源列表以获取子应用资源;利用所述入口组件创建用于所述子应用的沙箱,并将所述子应用资源注入所述沙箱,以加载所述子应用。2.如权利要求1所述的子应用运行方法,其特征在于,所述子应用为基于ES模块实现的子应用。3.如权利要求1或2所述的子应用运行方法,其特征在于,创建用于所述子应用的沙箱,包括:创建用于所述沙箱的窗口代理,所述窗口代理对接所述主应用的窗口对象和所述沙箱。4.如权利要求3所述的子应用运行方法,其特征在于,所述方法还包括:响应于所述子应用访问第一目标变量的请求,确定所述沙箱内是否存在所述第一目标变量;若是,则将所述沙箱中的第一目标变量发送至所述子应用;若否,则通过所述窗口代理将所述主应用窗口对象中的第一目标变量发送至所述子应用。5.如权利要求3所述的子应用运行方法,其特征在于,所述方法还包括:响应于所述子应用设置第二目标变量的请求,确定所述沙箱内是否存在所述第二目标变量;若是,则对所述沙箱内的所述第二目标变量进行设置;若否,则通过所述窗口代理确定所述主应用窗口对象中的第二目标变量是否可设置;若是,则通过所述窗口代理设置主应用窗口对象中的第二目标变量;若否,则保持主应用窗口对象中所述第二目标变量不变。6.如权利要求1或2所述的子应用运行方法,其特征在于,所述方法还包括:响应于卸载所述子应用的触发请求,卸载所述入口组件,以卸载所述子应用。7.如权利要求6所述的子应用运行方法,其特征在于,所述构建用于在主应用中运行的子应用的入口组件,包括:定义用于所述子应用的第一函数和第二函数;所述方法还包括:在所述子应用被加载后,记录所述子应用执行所述第一函数的操作;所述响应于卸载所述子...

【专利技术属性】
技术研发人员:滕茂清
申请(专利权)人:腾讯音乐娱乐科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1