基于qiankun的应用存储方法、装置、设备和计算机存储介质制造方法及图纸

技术编号:37564368 阅读:17 留言:0更新日期:2023-05-15 07:45
本发明专利技术提供了基于qiankun的应用存储方法、装置、设备和计算机存储介质,该基于qiankun的应用存储方法包括:获取具有qiankun微前端框架,qiankun微前端框架具有qiankun接口;利用qiankun接口在主应用中注册多个子应用,每个子应用包括名称、访问地址、在主应用中的挂载节点和访问路径;利用qiankun接口在主应用中加载至少一个子应用,得到每个子应用的沙箱和资源文件,且资源文件包括对子应用的本地存储对象进行重写的代码文件;针对每个子应用,在沙箱中运行资源文件,以对子应用的本地存储对象进行重写,其通过在每个沙箱中分别运行每个资源文件以利用该子应用的名称对其本地存储对象进行重写,以确保每个子应用的本地存储对象的key是唯一的,以避免多个子应用出现存储冲突。现存储冲突。现存储冲突。

【技术实现步骤摘要】
基于qiankun的应用存储方法、装置、设备和计算机存储介质


[0001]本专利技术涉及数据处理
,特别是涉及基于qiankun的系统存储方法、装置、设备和计算机存储介质。

技术介绍

[0002]微前端是通过qiankun接口将多个独立开发、独立部署的子应用联合以形成主应用,但是,当多个子应用联合时,多个子应用将会共享存储空间,使得多个子应用的本地存储地址存在冲突,导致多个子应用存在相互覆盖的情况,因此,为了避免多个子应用出现本地存储地址出现冲突,目前主要通过为每个子应用设置唯一的标识规则,然后按照统一的标识规则,对每个子应用的本地存储接口的代码进行更新,但是,其需要对全部子应用的存储接口的代码进行更新,工作量较大;而且,不同子应用的存储接口的代码格式不同,增加了对全部子应用的存储接口的代码进行更新的难度。

技术实现思路

[0003]基于此,本专利技术的目的在于,提供一种基于qiankun的应用存储方法、装置、设备和计算机存储介质,其无需对全部子应用的本地存储的接口进行更新即可解决子应用的本地存储地址出现冲突的问题。
[0004]本专利技术所采用的技术方案内容具体如下:
[0005]基于qiankun的应用存储方法,包括:
[0006]S1:获取具有qiankun微前端框架,所述qiankun微前端框架具有qiankun接口;
[0007]S2:利用所述qiankun接口在主应用中注册多个子应用,每个所述子应用包括名称、访问地址、在主应用中的挂载节点和访问路径;<br/>[0008]S3:利用所述qiankun接口在所述主应用中加载至少一个所述子应用,得到每个所述子应用的沙箱和资源文件,且所述资源文件包括对所述子应用的本地存储对象进行重写的代码文件;
[0009]S4:针对每个所述子应用,在所述沙箱中运行资源文件,以对所述子应用的本地存储对象进行重写。
[0010]进一步地,步骤S3包括:
[0011]S31:利用所述qiankun接口的getTemplate方法获得所述子应用的html文件;
[0012]S32:对所述html文件进行解析,得到所述子应用的所述资源文件,且所述资源文件为JS文件。
[0013]进一步地,步骤S32包括:
[0014]S321:获取所述html文件中用于处理所述子应用本地存储的代码文件;
[0015]S322:利用script标签对所述代码文件进行包裹处理,得到所述资源文件。
[0016]进一步地,步骤S32中,所述JS文件为JS代码文件或JS路径文件,当所述JS文件为所述JS路径文件时,步骤S3还包括步骤S33,且S33为:
[0017]S33:所述qiankun接口利用fetch方法或ajax方法对所述JS路径文件进行请求,得到所述JS路径文件对应的所述JS代码文件。
[0018]进一步地,步骤S4包括:
[0019]S41:获取每个所述子应用在其沙箱中的window代理对象,所述主应用的window对象包括多个所述window代理对象,所述window代理对象包括所述本地存储对象;
[0020]S42:针对每个所述子应用,利用所述window代理对象在所述沙箱中运行所述JS代码文件,以对所述本地存储对象进行重写。
[0021]进一步地,步骤S42中,对所述本地存储对象进行重写包括:
[0022]S421:对所述子应用的本地存储接口对象的设置项setItem(key,value)进行重写和调用,且key包括子应用名称

use和子应用名称

token;
[0023]S422:对所述子应用的本地存储接口对象的获取项getItem(value)进行重写与调用。
[0024]本专利技术还提供了基于qiankun的应用存储装置,包括:
[0025]获取模块,用于获取具有qiankun微前端框架,所述qiankun微前端框架具有qiankun接口;
[0026]注册模块,用于利用所述qiankun接口在主应用中注册多个子应用,每个所述子应用包括名称、访问地址、在主应用中的挂载节点和访问路径;
[0027]加载模块,用于利用所述qiankun接口在所述主应用中加载至少一个所述子应用,得到每个所述子应用的沙箱和资源文件,且所述资源文件包括对所述子应用的本地存储对象进行重写的代码文件;
[0028]重写模块,用于针对每个所述子应用,在所述沙箱中运行资源文件,以对所述子应用的本地存储对象进行重写。
[0029]进一步地,所述加载模块包括:
[0030]第一获取单元,用于利用所述qiankun接口的getTemplate方法获得所述子应用的html文件和沙箱;
[0031]解析单元:用于对所述html文件进行解析,得到所述子应用的所述资源文件,且所述资源文件为JS文件。
[0032]本专利技术还提供了基于qiankun的应用存储设备,包括:
[0033]处理器;
[0034]存储器,用于存储由所述处理器执行的计算机程序;
[0035]其中,所述处理器执行所述计算机程序时实现本专利技术所述的基于qiankun的应用存储方法。
[0036]本专利技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现本专利技术所述的基于qiankun的应用存储方法。
[0037]与现有技术相比,本专利技术的有益效果在于:
[0038]本专利技术公开的基于qiankun的应用存储方法,其主应用通过所述qiankun接口加载多个所述子应用时可以获得每个所述子应用的沙箱和资源文件,然后在每个所述沙箱中分别运行每个所述资源文件,以对所述子应用的本地存储接口进行重写,其对多个所述子应用进行存储时无需对多个所述子应用的全部代码进行改动即可实现对多个所述子应用存
储时的隔离,可以避免多个所述子应用出现存储地址冲突。
[0039]为了更好地理解和实施,下面结合附图详细说明本专利技术。
附图说明
[0040]图1为本专利技术一实施例中基于qiankun的应用存储方法的流程图;
[0041]图2为本专利技术一实施例中基于qiankun的应用存储装置的结构框图;
[0042]其中,各附图的附图标记为:
[0043]1、获取模块;2、注册模块;3、加载模块;31、第一获取单元;32、解析单元;4、重写模块;41、第二获取单元;42、重写单元。
具体实施方式
[0044]应当明确,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请实施例保护的范围。
[0045]在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于qiankun的应用存储方法,其特征在于,包括:S1:获取具有qiankun微前端框架,所述qiankun微前端框架具有qiankun接口;S2:利用所述qiankun接口在主应用中注册多个子应用,每个所述子应用包括名称、访问地址、在主应用中的挂载节点和访问路径;S3:利用所述qiankun接口在所述主应用中加载至少一个所述子应用,得到每个所述子应用的沙箱和资源文件,且所述资源文件包括对所述子应用的本地存储对象进行重写的代码文件;S4:针对每个所述子应用,在所述沙箱中运行资源文件,以对所述子应用的本地存储对象进行重写。2.根据权利要求1所述的基于qiankun的应用存储方法,其特征在于,步骤S3包括:S31:利用所述qiankun接口的getTemplate方法获得所述子应用的html文件;S32:对所述html文件进行解析,得到所述子应用的所述资源文件,且所述资源文件为JS文件。3.根据权利要求2所述的基于qiankun的应用存储方法,其特征在于,步骤S32包括:S321:获取所述html文件中用于处理所述子应用本地存储的代码文件;S322:利用script标签对所述代码文件进行包裹处理,得到所述资源文件。4.根据权利要求3所述的基于qiankun的应用存储方法,其特征在于,步骤S32中,所述JS文件为JS代码文件或JS路径文件,当所述JS文件为所述JS路径文件时,步骤S3还包括步骤S33,且S33为:S33:所述qiankun接口利用fetch方法或ajax方法对所述JS路径文件进行请求,得到所述JS路径文件对应的所述JS代码文件。5.根据权利要求4所述的基于qiankun的应用存储方法,其特征在于,步骤S4包括:S41:获取每个所述子应用在其沙箱中的window代理对象,所述主应用的window对象包括多个所述window代理对象,所述window代理对象包括所述本地存储对象;S42:针对每个所述子应用,利用所述window代理对象在所述沙箱中运行所述JS代码文件,以对所述本地存储对象进行...

【专利技术属性】
技术研发人员:苏滨郑桂卢超
申请(专利权)人:广州市玄武无线科技股份有限公司
类型:发明
国别省市:

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

1