CN112363857B - 微前端架构的应用系统、同步方法、存储介质和设备 - Google Patents
微前端架构的应用系统、同步方法、存储介质和设备 Download PDFInfo
- Publication number
- CN112363857B CN112363857B CN202110035466.5A CN202110035466A CN112363857B CN 112363857 B CN112363857 B CN 112363857B CN 202110035466 A CN202110035466 A CN 202110035466A CN 112363857 B CN112363857 B CN 112363857B
- Authority
- CN
- China
- Prior art keywords
- application
- sub
- event object
- page event
- applications
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/542—Intercept
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供微前端架构的应用系统、同步方法、存储介质和设备,通过在第一子应用挂载第一共享模块,以拦截获取第一对象发生模块发送给第一分发器的初始页面事件对象的信息,并将该信息更新至主应用的主状态库。主应用根据更新后的信息确定与该信息的关联子应用,并将信息发送至各关联子应用的共享模块,以使各关联子应用完成相应的用户界面响应。由此可以看出,本发明实现相关联的子应用的状态库之间直接同步,降低相关联的子应用间的耦合性,且子应用在同步与其相关联的其它子应用的状态库时,子应用内部无需实现从数据到用户界面响应的过程,直接实现从页面事件对象到用户界面响应的过程,减少对子应用的代码的改动范围,代码侵入性较低。
Description
技术领域
本发明涉及前端技术领域,特别是涉及一种微前端架构的应用系统、同步方法、存储介质和设备。
背景技术
在微前端架构下,应用系统被拆分为一个主应用和若干个子应用,主应用的职责是管理其它应用。子应用依据自治、单一性的原则,相互之间是隔离开的。当需要整合业务时,类似用户登录信息、角色权限信息、系统配置、通知类信息需要在子应用间共享,才能使各个子应用在业务上有机的整合。基于应用系统自带的通信机制,子应用间可以完成数据的传递。但仅仅只是传递数据,没有完整的管理机制,同时也没有做到数据与子应用的状态库直接同步。在实际场景下需要基于子应用内部的前端状态管理逻辑实现由数据变化到用户界面响应这一过程,增加子应用之间的耦合性,同时也增加子应用的代码的改动范围,代码侵入性较高。
发明内容
本发明实施例的目的在于提供一种微前端架构的应用系统、同步方法、存储介质和设备,以实现相关联的子应用的状态库之间直接同步,降低相关联的子应用间的耦合性,且子应用在同步与其相关联的其它子应用的状态库时,子应用内部无需实现从数据到用户界面响应的过程,而是直接实现从页面事件对象到用户界面响应的过程,省去了从数据到页面事件对象的过程,减少对子应用的代码的改动范围,代码侵入性较低。具体技术方案如下:
第一方面,一种微前端架构的应用系统,至少包括:主应用和至少两个子应用,所述主应用至少包括主状态库,所述主状态库用于存储所述微前端架构的应用系统中至少部分子应用的当前应用状态信息,所述至少两个子应用中包括第一子应用,所述第一子应用至少包括:第一共享模块、第一对象发生模块和第一分发器;
所述第一对象发生模块产生所述第一子应用的初始页面事件对象,并向所述第一分发器发送所述初始页面事件对象;
所述第一共享模块拦截所述初始页面事件对象,并将所述初始页面事件对象的信息发送至所述主应用,以使所述第一分发器无法获得所述初始页面事件对象;
所述主应用根据所述初始页面事件对象的信息更新所述主状态库中存储的、所述第一子应用的当前应用状态信息;
所述主应用确定所述初始页面事件对象的关联子应用,所述关联子应用至少包括所述第一子应用;
所述主应用将更新后的所述第一子应用的当前应用状态信息分发给各关联子应用的共享模块;
对任一所述关联子应用:该关联子应用的共享模块根据接收到的更新后的当前应用状态信息,生成模拟页面事件对象,并将所述模拟页面事件对象发送至所述该关联子应用的分发器,以使所述该关联子应用完成与所述模拟页面事件对象相匹配的用户界面响应。
结合第一方面,在某些可选的实施方式中,所述第一子应用还包括:第一子状态库;
所述第一共享模块将所述第一子应用的当前应用状态信息存储至所述第一子状态库。
第二方面,一种微前端架构的应用系统同步方法,应用于一种微前端架构的应用系统,所述微前端架构的应用系统至少包括:主应用和至少两个子应用,所述主应用至少包括主状态库,所述主状态库用于存储所述微前端架构的应用系统中至少部分子应用的当前应用状态信息,所述至少两个子应用中包括第一子应用,所述第一子应用至少包括:第一共享模块、第一对象发生模块和第一分发器;
所述微前端架构的应用系统同步方法,包括:
所述第一对象发生模块产生所述第一子应用的初始页面事件对象,并向所述第一分发器发送所述初始页面事件对象;
所述第一共享模块拦截所述初始页面事件对象,并将所述初始页面事件对象的信息发送至所述主应用,以使所述第一分发器无法获得所述初始页面事件对象;
所述主应用根据所述初始页面事件对象的信息更新所述主状态库中存储的、所述第一子应用的当前应用状态信息;
所述主应用确定所述初始页面事件对象的关联子应用,所述关联子应用至少包括所述第一子应用;
所述主应用将更新后的所述第一子应用的当前应用状态信息分发给各关联子应用的共享模块;
对任一所述关联子应用:该关联子应用的共享模块根据接收到的更新后的当前应用状态信息,生成模拟页面事件对象,并将所述模拟页面事件对象发送至所述该关联子应用的分发器,以使所述该关联子应用完成与所述模拟页面事件对象相匹配的用户界面响应。
结合第二方面,在某些可选的实施方式中,所述该关联子应用的共享模块根据接收到的更新后的当前应用状态信息,生成模拟页面事件对象,并将所述模拟页面事件对象发送至所述该关联子应用的分发器,以使所述该关联子应用完成与所述模拟页面事件对象相匹配的用户界面响应,包括:
所述该关联子应用的共享模块根据接收到的更新后的当前应用状态信息,生成与所述接收到的更新后的当前应用状态信息相匹配的模拟页面事件对象,其中,所述模拟页面事件对象与所述该关联子应用的参数定义相匹配;
所述该关联子应用的共享模块将所述模拟页面事件对象发送给所述该关联子应用的分发器;
所述该关联子应用的分发器接收到所述模拟页面事件对象后,根据所述模拟页面事件对象,完成与所述模拟页面事件对象相匹配的、所述该关联子应用的用户界面响应。
结合上一个实施方式,在某些可选的实施方式中,所述该关联子应用的分发器接收到所述模拟页面事件对象后,根据所述模拟页面事件对象,完成与所述模拟页面事件对象相匹配的、所述该关联子应用的用户界面响应,包括:
所述该关联子应用的分发器接收到所述模拟页面事件对象后,根据所述模拟页面事件对象,触发所述该关联子应用的回调模块,从而通过所述回调模块完成与所述模拟页面事件对象相匹配的、所述该关联子应用的用户界面响应。
结合第二方面,在某些可选的实施方式中,所述第一共享模块拦截所述初始页面事件对象,并将所述初始页面事件对象的信息发送至所述主应用,以使所述第一分发器无法获得所述初始页面事件对象,包括:
所述第一共享模块通过钩子函数,读取所述第一对象发生模块向所述第一分发器发送的所述第一子应用的初始页面事件对象,从而获得所述初始页面事件对象的信息;
所述第一共享模块消耗所述初始页面事件对象,以使所述第一分发器无法获得所述初始页面事件对象。
结合上一个实施方式,在某些可选的实施方式中,所述第一共享模块消耗所述初始页面事件对象,以使所述第一分发器无法获得所述初始页面事件对象,包括:
所述第一共享模块直接阻断或更改所述初始页面事件对象的属性,以使所述第一分发器无法获得所述初始页面事件对象。
结合第二方面,在某些可选的实施方式中,所述主应用确定所述初始页面事件对象的关联子应用,包括:
所述主应用根据更新后的所述第一子应用的当前应用状态信息,确定与更新后的所述第一子应用的当前应用状态信息相关联的各关联子应用。
第三方面,一种微前端架构的应用系统同步方法,应用于一种微前端架构的应用系统,所述微前端架构的应用系统至少包括:主应用和至少两个子应用,所述主应用存储有所述微前端架构的应用系统中至少部分子应用的当前应用状态信息,所述方法包括:
第一子应用拦截其内部的初始页面事件对象;
所述第一子应用将拦截的所述初始页面事件对象的信息发送至所述主应用;
所述主应用根据所述初始页面事件对象的信息更新所述主应用中存储的、所述第一子应用的当前应用状态信息;
所述主应用确定所述初始页面事件对象的关联子应用,所述关联子应用至少包括所述第一子应用;
所述主应用将更新后的所述第一子应用的当前应用状态信息分发给各所述关联子应用;
各所述关联子应用分别根据接收到的更新后的当前应用状态信息,生成模拟页面事件对象,以使所述该关联子应用完成与所述模拟页面事件对象相匹配的用户界面响应。
第四方面,一种存储介质,所述存储介质用于存储程序,所述程序被处理器执行时实现上述任一项所述的微前端架构的应用系统同步方法。
第五方面,一种应用系统同步设备,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序,所述程序至少用于实现上述任一项所述的微前端架构的应用系统同步方法。
本发明实施例提供的一种微前端架构的应用系统、同步方法、存储介质和设备,可以实现相关联的子应用的状态库之间直接同步,降低相关联的子应用间的耦合性,且子应用在同步与其相关联的其它子应用的状态库时,子应用内部无需实现从数据到用户界面响应的过程,而是直接实现从页面事件对象到用户界面响应的过程,省去了从数据到页面事件对象的过程,减少对子应用的代码的改动范围,代码侵入性较低。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的微前端架构的应用系统的结构示意图;
图2为本发明提供的微前端架构的应用系统同步方法的流程图;
图3为本发明提供的应用系统同步设备的结构示意图。
具体实施方式
在微前端架构下,应用系统被拆分为一个主应用和若干个子应用,主应用的职责是管理其它应用。子应用依据自治、单一性的原则,子应用相互之间是隔离开的。当需要整合业务时,类似用户登录信息、角色权限信息、系统配置、通知类信息需要在子应用间共享,才能使各个子应用在业务上有机的整合。
一般来说,若两个子应用均关注相同的信息,若该信息在其中一个子应用(内部子应用)中变更了,使得内部子应用的用户界面状态发生改变,那么另外一个子应用(外部子应用)的用户界面状态也需要做相应的变化。即在两个子应用中均生成与该信息变更相应的页面事件对象,使得这两个子应用分别执行各自页面事件对象的用户界面响应,即该信息变更会使得这两个子应用的各自用户界面状态发生相应的变化。
基于应用系统自带的通信机制,相关联的子应用(内部子应用和外部子应用)之间可以完成数据的传递。但仅仅只是传递数据,没有完整的管理机制,同时也没有做到数据与外部子应用的状态库直接同步,外部子应用需要基于子应用内部的前端状态管理逻辑实现由数据变化到用户界面变化这一过程才能做到数据与外部子应用的状态库同步,增加了相关联的子应用之间的耦合性,导致当需要整合子应用时,增加对外部子应用的代码的改动范围。例如,目前相关联的子应用一般是依靠全局变量或者本地数据作为状态存储容器,外部子应用需要自发地从全局变量或者本地读取数据;另外一种方式是基于事件监听或者发布订阅模式实现的消息机制,即主应用订阅子应用特定的状态,再以主应用作为消息中心保存和维护系统状态,并负责向下分发,由所有子应用消费。这两种实现方式都可以达到数据共享的目的,但局限性也很大,存在下述问题:(1)外部子应用需要自发组织订阅内部子应用,或者需要通过全局变量获取内部子应用的数据,由于各个子应用是独立开发的,对于同一个页面事件对象,不同的子应用对该对象的变量的定义可能是不同,导致无论是通过订阅还是通过全局变量获取内部子应用的数据,均需要在内部子应用和外部子应用中变更代码,代码的侵入性很大。(2)外部子应用而言,内部子应用产生的页面事件对象,在外部子应用中无法做到直接由页面事件对象到用户界面响应的变化过程,而需要外部子应用关注并获取内部子应用产生的页面事件对象的数据,然后根据这些数据实现由数据到页面事件对象的变化,再由页面事件对象到用户界面响应的变化过程。(3)在数据处理的实时性上,对于一个页面事件对象而言,外部子应用的对该页面事件对象的用户界面响应必然晚于内部子应用对该页面事件对象的用户界面响应,使得内部子应用的用户界面响应与外部子应用的用户界面响应不同步。
为解决上述问题,本发明提供了一种微前端架构的应用系统、同步方法、存储介质和设备,本发明可以是基于基座模式微前端架构的前端单页面应用的整合解决方案。本发明提供的应用系统是由一个主应用和一系列业务的子应用构成的系统,并由这个主应用来管理子应用,包括从子应用的生命周期管理到应用间的通信机制。其中,主应用类似于应用程序编程接口网关(Application Programming Interface Gateway)的概念。主应用作为应用系统的统一入口,负责将对应的请求指向对应的服务。子应用依据自治、单一性的原则,负责各自模块的业务实现,与其他子应用是隔离开的,并具备单独编译发布的能力。本发明可以在主应用中实现一个系统级别的状态库组件,管理各个子应用的状态信息、接受和分发状态变更,以解决上述问题。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明提供了一种微前端架构的应用系统,至少包括:主应用100和至少两个子应用,所述主应用100至少包括主状态库110,所述主状态库110用于存储所述微前端架构的应用系统中至少部分子应用的当前应用状态信息,所述至少两个子应用中包括第一子应用200,所述第一子应用200至少包括:第一共享模块210、第一对象发生模块220和第一分发器230;
所述第一对象发生模块220产生所述第一子应用200的初始页面事件对象,并向所述第一分发器230发送所述初始页面事件对象;
所述第一共享模块210拦截所述初始页面事件对象,并将所述初始页面事件对象的信息发送至所述主应用100,以使所述第一分发器230无法获得所述初始页面事件对象;
所述主应用100根据所述初始页面事件对象的信息更新所述主状态库110中存储的、所述第一子应用200的当前应用状态信息;
所述主应用100确定所述初始页面事件对象的关联子应用,所述关联子应用至少包括所述第一子应用200;
所述主应用100将更新后的所述第一子应用200的当前应用状态信息分发给各关联子应用的共享模块;
对任一所述关联子应用:该关联子应用的共享模块根据接收到的更新后的当前应用状态信息,生成模拟页面事件对象,并将所述模拟页面事件对象发送至所述该关联子应用的分发器,以使所述该关联子应用完成与所述模拟页面事件对象相匹配的用户界面响应。
可选的,主状态库110不同于子应用内部的子状态库,主应用100中的主状态库110是系统级别的状态库。主状态库110没有自己的业务数据需要保存,通常用来保存需要在子应用间共享的应用状态信息,例如用户信息之类的基础数据,本发明对此不做限制。
可选的,当主状态库110保存的应用状态信息发生变更,则主应用100可以确定需要共享变更后的应用状态信息的子应用,并将变更后的应用状态信息分发给要共享变更后的应用状态信息的子应用。
可选的,第一对象发生模块220可以获得用户在第一子应用200的用户界面做的一些页面操作数据,然后根据获得的页面操作数据生成相应的页面事件对象。例如,本发明所提供的应用系统可以是基于JAVA编程语言开发的,用户在第一子应用200的用户界面更改了用户信息,第一对象发生模块220可以获得更改用户信息的页面操作数据,然后根据页面操作数据生成与更改用户信息对应的初始页面事件对象。因为在大部分的前端编程语言中,对于用户界面的操作一般是以页面事件对象为单位,具体可以参考各种前端编程语言对于“对象”的定义,本文对此不做过多描述。
例如以游戏为例,玩家在第一子应用200的用户界面进行更改游戏人物的角色着装的操作,即某个游戏人物的角色着装状态发生改变。该操作可以生成相应的页面操作数据(以下称为:着装更改数据),第一对象发生模块220获得着装更改数据,并生成相应的页面事件对象(以下称为:着装更改事件对象)。生成着装更改事件对象后,第一对象发生模块220按照固有的状态管理模式向第一分发器230发送着装更改事件对象,但基于本发明针对各个子应用分别开发的共享模块,第一子应用200的共享模块与第一子应用200挂载,以监听和打断第一子应用200内部的固有状态管理模。所以着装更改事件对象将无法直接从第一对象发生模块220发送到第一分发器230,着装更改事件对象到达第一分发器230前会被第一子应用200的共享模块拦截,使得第一分发器230无法获得第一对象发生模块220发送的着装更改事件对象。
第一子应用200的共享模块拦截着装更改事件对象后,获得着装更改事件对象的信息。第一子应用200的共享模块将着装更改事件对象的信息发送至主应用100,以使主应用100更新主状态库110中存储的、第一子应用200的应用状态信息,其中包括角色着装状态信息。即根据着装更改事件对象的信息更新角色着装状态信息。又由于主应用100与多个子应用通信连接,这些子应用中存在该游戏人物的角色着装的子应用称为关联子应用(包括第一子应用200)。对于关联子应用,需要将关联子应用中的该角色着装进行同步。从用户界面效果来看,需要同步角色着装的变化,从后台数据来看,需要同步各关联子应用的该角色着装的角色着装状态信息。但直接将主状态库110中的该角色着装的角色着装状态信息发送给各个关联子应用的分发器并不能触发分发器执行后续的更改角色着装操作,因为分发器是需要接收页面事件对象来触发后续操作的,所以可以将主状态库110中的该角色着装的角色着装状态信息发送给各个关联子应用的共享模块,再由各个关联子应用的共享模块分别根据各自的参数定义,分别生成能触发各自分发器执行后续更改角色着装的模拟页面事件对象,再由各自的共享模块分别将各自生成的模拟页面事件对象发送至各自的分发器,以使各自的分发器执行后续更改角色着装的操作,本发明对此不做限制。
由此可知,本发明实现相关联的子应用的状态库之间直接同步,降低相关联的子应用间的耦合性,且子应用在同步与其相关联的其它子应用的状态库时,子应用内部无需实现从数据到用户界面响应的过程,而是直接实现从页面事件对象到用户界面响应的过程,省去了从数据到页面事件对象的过程,减少对子应用的代码的改动范围,代码侵入性较低。
可选的,通过上述方法,各个关联子应用的用户界面中该角色着装已经同步,各个关联子应用的用户界面中该角色着装的着装状态信息的主状态库110中也已经同步。但还可以结合图1所示的实施方式,在某些可选的实施方式中,所述第一子应用200还包括:第一子状态库;
所述第一共享模块210将所述第一子应用200的当前应用状态信息存储至所述第一子状态库。
可选的,主状态库110中的数据也会自动注入到子应用状态库中。在各个子应用内部,主状态库110注入的数据和子应用自有数据共同组成了子应用的完整内部状态,可以响应子应用内部的用户界面变化,本发明对此不做限制。
可选的,通过本发明提供的主状态库110统一第一子应用200的当前应用状态信息分发给各个关联子应用的共享模块,使得各个关联子应用的用户界面响应同步进行,同时,还可以通过主状态库110向各个关联子应用的子状态库注入数据,使得各个关联子应用的状态信息同步,系统的同步性较好。
可选的,本文所说的微前端架构的应用系统可以是在基座模式微前端架构下的系统,应用系统被拆分为一个主应用100和若干个子应用,主应用100的职责是管理子应用。子应用依据自治、单一性的原则,相互之间是隔离开的。但类似用户登录信息、角色权限信息、系统配置、通知类信息需要在子应用间共享,才能使各个子应用在业务上整合。
可选的,通过本发明提供的方法,在主应用100中实现了一个系统级别的主状态库110组件,通过主状态库110管理状态信息、接受和分发状态变更;在子应用中实现了一个共享模块和一个子应用状态库,以实现关联子应用间的用户界面同步和状态信息同步。
可选的,在子应用内部,通过共享模块来获得状态变更信息,以及通过共享模块来触发自身的后续用户界面响应,无需通过代码侵入其它应用以获得数据,即无需根据其它应用的定义进行相应的程序代码设计,侵入到其它应用的代码中获得状态变更信息,一定程度上减少了系统开发难度,提高系统开发效率和降低系统成本,本发明对此不做限制。
可选的,结合图1所示的实施方式,所述主应用100还可以包括:主系统用户界面框架模块、子系统加载器、子系统管理模块和路由分发模块;
其中,子系统管理模块和路由分发模块均与主系统用户界面框架模块通信连接,子系统管理模块管理子系统(子应用)的注册和卸载等生命周期。
路由分发模块将主系统用户界面框架模块生成的变化URL路径分发给子系统管理模块,再由子系统管理模块统一管理子系统的用户界面的变化。
子系统加载器与子系统管理模块通信连接,子系统加载器可以根据实际需要加载相应的子系统,子系统管理模块可以监听和触发子系统加载器的加载工作,本发明对此不做限制。
如图2所示,本发明提供了一种微前端架构的应用系统同步方法,应用于一种微前端架构的应用系统,所述微前端架构的应用系统至少包括:主应用100和至少两个子应用,所述主应用100至少包括主状态库110,所述主状态库110用于存储所述微前端架构的应用系统中至少部分子应用的当前应用状态信息,所述至少两个子应用中包括第一子应用200,所述第一子应用200至少包括:第一共享模块210、第一对象发生模块220和第一分发器230;
所述微前端架构的应用系统同步方法,包括:
S100、所述第一对象发生模块220产生所述第一子应用200的初始页面事件对象,并向所述第一分发器230发送所述初始页面事件对象;
可选的,第一对象发生模块220可以获得用户在第一子应用200的用户界面进行的页面操作数据,并根据获得的页面操作数据产生第一子应用200的初始页面事件对象,本发明对此不做限制。
可选的,本发明对于初始页面事件对象不做任何限制,任何符合开发所述应用系统所用的程序编程语言规范的页面事件对象均可以作为本发明所述的初始页面事件对象,本发明对此不做限制。
可选的,第一对象发生模块220产生初始页面事件对象后,可以基于第一子应用200内部固有的通信机制,向第一分发器230发送初始页面事件对象,本发明对此不做限制。
S200、所述第一共享模块210拦截所述初始页面事件对象,并将所述初始页面事件对象的信息发送至所述主应用100,以使所述第一分发器230无法获得所述初始页面事件对象;
可选的,第一共享模块210可以在初始页面事件对象发送到第一分发器230之前将初始页面事件对象拦截,初始页面事件对象被第一共享模块210拦截后,第一分发器230无法获得第一对象发生模块220发送的初始页面事件对象,本发明对此不做限制。
可选的,第一共享模块210拦截初始页面事件对象后可以获得初始页面事件对象的信息。例如通过解析获得初始页面事件对象的信息,以便于将初始页面事件对象的信息发送给主应用100,例如发送给主应用100的主状态库110,本发明对此不做限制。
可选的,本文所说的初始页面事件对象可以是一些基础的页面事件对象,例如可以是用户登录、角色权限、系统配置和通知信息等相关的页面事件对象,当然,本发明对初始页面事件对象不做任何限制。
可选的,第一共享模块210所能拦截的初始页面事件对象可以包括用户登录登出、角色或者权限变化、系统配置变化以及消息通知等事件的初始页面事件对象,本发明对此不做限制。
可选的,对于具体一个初始页面事件对象(Action)而言,一个Action可以包括属性信息(type)和额外信息(payload)两个字段。所以可以在主状态库110中存储各个初始页面事件对象的type和payload。type属性通常会被定义成常量字符串或Symbol对象,Symbol是一种基本数据类型。额外信息顾名思义就是Action的额外的信息,可以设任意类型的值。具体可以参见Flux标准中对于Action、type和payload的定义和解释,本发明对此不做过多描述。
例如,若type == “logout”,代表退登系统。Payload可以表达“主动”或者“被动”,同时,退登的时间这些必要的展示信息,也会在payload里面。如果payload是表达“被动”退登系统。还可以追加一个字段meta,meta里面可以表达更加额外的信息了。比如,被哪个系统的登录行为导致了被动退登。
例如在一些金融类的系统中,本来在A手机中使用手机银行,这个时候若另一个B手机也登录进去,则A手机会被迫退登。这时候手机银行界面上会显示,是被动退登的。附带可能还会提示是哪一个手机里面的哪个登录行为,导致了这次退登。如果觉得账户有风险,会推荐用户进行找回密码或者挂失、冻结操作。
S300、所述主应用100根据所述初始页面事件对象的信息更新所述主状态库110中存储的、所述第一子应用200的当前应用状态信息;
可选的,主应用100的主状态库110中存储有各个子应用的当前应用状态信息,这些当前应用状态信息与相应子应用的用户界面对应。当第一对象发生模块220产生初始页面事件对象时,说明第一子应用200的某些应用状态发生变更,即需要更新第一子应用200的应用状态信息,本发明对此不做限制。
可选的,除了第一子应用200的当前应用状态信息发生变更,第一子应用200的用户界面也会发生变更,即第一子应用200可以执行相应的用户界面响应,本发明对此不做限制。
S400、所述主应用100确定所述初始页面事件对象的关联子应用,所述关联子应用至少包括所述第一子应用200;
可选的,对于一个初始页面事件对象的信息而言,其可以触发第一子应用200执行一次用户界面响应。即用户界面根据初始页面事件对象做相应的改变,同时,该初始页面事件对象的信息还可以触发其它子应用执行一次用户界面响应。即一个初始页面事件对象的信息可以触发多个子应用更改用户界面,所以主应用100可以确定初始页面事件对象的关联子应用,所述关联子应用至少包括所述第一子应用200,本发明对此不做限制。
可选的,当多个子应用根据同一个初始页面事件对象作出相应的用户界面响应时,需要考虑各个子应用作出用户界面响应的同步性,越同时进行,同步性越好。所以本发明提供的方法在确定所述初始页面事件对象的关联子应用后再执行后续步骤,可以确保各个子应用执行响应用户界面响应的同步性较好。
S500、所述主应用100将更新后的所述第一子应用200的当前应用状态信息分发给各关联子应用的共享模块;
对任一所述关联子应用:该关联子应用的共享模块根据接收到的更新后的当前应用状态信息,生成模拟页面事件对象,并将所述模拟页面事件对象发送至所述该关联子应用的分发器,以使所述该关联子应用完成与所述模拟页面事件对象相匹配的用户界面响应。
可选的,分发器可以根据获得的模拟页面事件对象中的type,找到处理它的代码段,并执行后续用户界面响应流程,本发明对此不做限制。
可选的,初始页面事件对象是第一对象发生模块220根据第一子应用200的参数定义生成的对象,其可以直接触发第一子应用200执行相应的用户界面响应。但不能直接触发第一子应用200以外的其它子应用执行用户界面响应,因为其不合符其它子应用的程序的参数定义,例如一些变量的定义。所以可以将更新后的第一子应用200的当前应用状态信息分发给各关联子应用的共享模块,再由各关联子应用的共享模块分别根据自身所在的子应用的参数定义,分别生成可以触发各自所在的子应用执行相应用户界面响应的模拟页面事件对象,本发明对此不做限制。
可选的,模拟页面事件对象与初始页面事件对象可以是多对一的关系,即一个初始页面事件对象的信息更新到主应用100,并分发给多个共享模块后,多个共享模块可以根据自身所在的子应用的参数定义,生成相应的模拟页面事件对象。
可选的,各个关联子应用完成的用户界面响应在界面上的效果可以是一样,因为各个关联子应用的模拟页面事件对象均是根据相同的更新后的当前应用状态信息生成的。例如,新后的当前应用状态信息包括将游戏人物1的衣服变为红色,那么各个关联子应用完成与所述模拟页面事件对象相匹配的用户界面响应也应包括将游戏人物1的衣服变为红色的过程,本发明对此不做限制。
结合图1所示的实施方式,在某些可选的实施方式中,所述该关联子应用的共享模块根据接收到的更新后的当前应用状态信息,生成模拟页面事件对象,并将所述模拟页面事件对象发送至所述该关联子应用的分发器,以使所述该关联子应用完成与所述模拟页面事件对象相匹配的用户界面响应,包括:
步骤一、所述该关联子应用的共享模块根据接收到的更新后的当前应用状态信息,生成与所述接收到的更新后的当前应用状态信息相匹配的模拟页面事件对象,其中,所述模拟页面事件对象与所述该关联子应用的参数定义相匹配;
可选的,从用户界面来看,对于同一个用户界面响应,各个子应用的参数定义不同,所以需要根据各个子应用的参数定义生成相应的模拟页面事件对象,以便于后续各个子应用可以根据自身的共享模块生成的模拟页面事件对象完成相应的用户界面响应。例如将游戏人物1的着装变为红色的用户界面响应,各关联子应用的用户界面响应的最终效果均是将同一个游戏人物1的着装变为红色。但由于在各关联子应用的程序的参数定义中,对该游戏人物1的参数定义可以不同,比如对于着装的参数定义所使用的变量名不同。所以不同关联子应用的共享模块需要根据各自的参数定义生成相匹配的模拟页面事件对象,本发明对此不做限制。
可选的,生成模拟页面事件对象的过程在实际中符合具体的程序编程语言的规范,具体详见不同编程语言对于“对象”的定义和规范,本发明对此不做限制。
步骤二、所述该关联子应用的共享模块将所述模拟页面事件对象发送给所述该关联子应用的分发器;
可选的,由于主应用100几乎同时将相同的当前应用状态信息分发给各关联子应用的共享模块,所以理想情况下各关联子应用的共享模块也几乎同时接收到当前应用状态信息。因此各关联子应用的共享模块也可以在允许的时间差范围内生成模拟页面事件对象并发送给分发器,以使得各关联子应用完成相应用户界面响应的同步性较好。
步骤三、所述该关联子应用的分发器接收到所述模拟页面事件对象后,根据所述模拟页面事件对象,完成与所述模拟页面事件对象相匹配的、所述该关联子应用的用户界面响应。
可选的,在前端系统中,常规的方案均是由分发器来根据“对象”统一分配工作,完成相应的用户界面响应。各关联子应用的分发器在接收到模拟页面事件对象后,可以按照目前前端系统中常用的方案完成后续的用户界面响应,本发明对此不做限制。
例如,结合上一个实施方式,在某些可选的实施方式中,所述步骤三,包括:
所述该关联子应用的分发器接收到所述模拟页面事件对象后,根据所述模拟页面事件对象,触发所述该关联子应用的回调模块,从而通过所述回调模块完成与所述模拟页面事件对象相匹配的、所述该关联子应用的用户界面响应。
结合图1所示的实施方式,在某些可选的实施方式中,所述步骤S200,包括:
所述第一共享模块210通过钩子函数,读取所述第一对象发生模块220向所述第一分发器230发送的所述第一子应用200的初始页面事件对象,从而获得所述初始页面事件对象的信息;
所述第一共享模块210消耗所述初始页面事件对象,以使所述第一分发器230无法获得所述初始页面事件对象。
可选的,在计算机编程中,钩子函数主要用于通过拦截在软件组件之间传递的函数调用或消息或事件来改变或增强操作系统,应用程序或其他软件组件的行为。处理这种截获的函数调用,事件或消息的代码称为钩子,它的本质就是用以处理系统消息的程序,通过系统调用,把它挂入系统。钩子函数可用于许多目的,包括调试和扩展功能。常见的钩子函数:react的生命周期函数、vue的生命周期函数等,本发明对钩子函数不做限制。
可选的,因为主应用100的主状态库110存储的是各个子应用的当前应用状态信息,而初始页面事件对象可以至少导致各关联子应用(包括第一子应用200)的应用状态发生改变,所以可以获得初始页面事件对象的信息。
可选的,为确保各关联子应用的用户界面响应的同步性,可以消耗所述初始页面事件对象,避免所说初始页面事件对象先发送给第一分发器230,导致第一子应用200先完成相应的用户界面响应,本发明对此不做限制。
结合上一个实施方式,在某些可选的实施方式中,所述第一共享模块210消耗所述初始页面事件对象,以使所述第一分发器230无法获得所述初始页面事件对象,包括:
所述第一共享模块210直接阻断或更改所述初始页面事件对象的属性,以使所述第一分发器230无法获得所述初始页面事件对象。
结合图1所示的实施方式,在某些可选的实施方式中,所述步骤S400中的主应用100确定所述初始页面事件对象的关联子应用,包括:
所述主应用100根据更新后的所述第一子应用200的当前应用状态信息,确定与更新后的所述第一子应用200的当前应用状态信息相关联的各关联子应用。
可选的,多个子应用的用户界面可以存在相同的部分,那么对于相同部分的用户界面的状态,多个子应用需要做到同步。所以可以根据更新后的所述第一子应用200的当前应用状态信息,确定与更新后的所述第一子应用200的当前应用状态信息相关联的各关联子应用。例如,游戏人物1存在在第一子应用200的用户界面和第二子应用的用户界面,当用户在第一子应用200的用户界面更改了游戏人物1的着装,那么在第二子应用的用户界面中的游戏人物1也需要做一样的着装改变。这种情况下,各关联子应用可以理解为第一子应用200和第二子应用。当然,若其他子应用的用户界面也存在游戏人物1,则各关联子应用也包括其他子应用,本发明对此不走限制。
可选的,关联子应用间的关联关系可以是在提前设定好并建成关系表,可以直接根据关系表查找确定各关联子应用,本发明对此不做限制。
可选的,本发明提供了另一种微前端架构的应用系统同步方法,应用于一种微前端架构的应用系统,所述微前端架构的应用系统至少包括:主应用100和至少两个子应用,所述主应用100存储有所述微前端架构的应用系统中至少部分子应用的当前应用状态信息,所述方法包括:
步骤一、第一子应用200拦截其内部的初始页面事件对象;
可选的,本实施方式所说的初始页面事件对象可以是第一子应用200产生,并可以在第一子应用200内部进行传输,使得第一子应用200可以根据初始页面事件对象完成相应的用户界面响应。但为了保证其他关联子应用与第一子应用200的同步性,可以拦截初始页面事件对象,使得第一子应用200不能根据初始页面事件对象完成相应的用户界面响应。
步骤二、所述第一子应用200将拦截的所述初始页面事件对象的信息发送至所述主应用100;
可选的,为了后续各关联子应用可以进行统一的用户界面响应,第一子应用200可以将拦截到的初始页面事件对象的信息发送至主应用100,以便于主应用100执行后续步骤,使得各关联子应用完成相应的用户界面响应。
可选的,在某些可选的实施方式中,所述步骤二,包括:
所述第一子应用200的共享模块通过钩子函数,读取所述第一子应用200的对象发生模块向所述第一子应用200的分发器发送的所述第一子应用200的初始页面事件对象,从而获得所述初始页面事件对象的信息;
所述共享模块消耗所述初始页面事件对象,以使所述第分发器无法获得所述初始页面事件对象。
可选的,结合上一个实施方式,在某些可选的实施方式中,所述共享模块消耗所述初始页面事件对象,以使所述分发器无法获得所述初始页面事件对象,包括:
所述共享模块直接阻断或更改所述初始页面事件对象的属性,以使所述分发器无法获得所述初始页面事件对象。
步骤三、所述主应用100根据所述初始页面事件对象的信息更新所述主应用100中存储的、所述第一子应用200的当前应用状态信息;
可选的,具体一个子应用的当前应用状态信息可以反映该子应用的当前用户界面,当前应用状态信息发生变更,也应使得该子应用的用户界面发生变更,即该子应用应完成相应的用户界面响应,本发明对此不做限制。
步骤四、所述主应用100确定所述初始页面事件对象的关联子应用,所述关联子应用至少包括所述第一子应用200;
可选的,对于一个初始页面事件对象的信息而言,其可以触发第一子应用200执行一次用户界面响应。即用户界面根据初始页面事件对象做相应的改变,同时,该初始页面事件对象的信息还可以触发其它子应用执行一次用户界面响应。即一个初始页面事件对象的信息可以触发多个子应用更改用户界面,所以主应用100可以确定初始页面事件对象的关联子应用,所述关联子应用至少包括所述第一子应用200,本发明对此不做限制。
可选的,在某些可选的实施方式中,所述步骤四,包括:
所述主应用100根据更新后的所述第一子应用200的当前应用状态信息,确定与更新后的所述第一子应用200的当前应用状态信息相关联的各关联子应用。
步骤五、所述主应用100将更新后的所述第一子应用200的当前应用状态信息分发给各所述关联子应用;
可选的,各关联子应用若要响应其它子应用产生的初始页面事件对象完成响应的用户界面响应,则需要获得相应的初始页面事件对象的信息。因为各个子应用内部的参数定义不同,一个子应用产生的初始页面事件对象并不适用于其他子应用。但该初始页面事件对象的信息可以适用于其他子应用,所以可以将初始页面事件对象的信息分发给各关联子应用,本发明对此不做限制。
步骤六、各所述关联子应用分别根据接收到的更新后的当前应用状态信息,生成模拟页面事件对象,以使所述该关联子应用完成与所述模拟页面事件对象相匹配的用户界面响应。
如上所述,各个子应用内部的参数定义不同,所以各关联子应用可以根据接收到的当前应用状态信息,结合其内部定义,生成符号各自内部定义的模拟页面事件对象,以使所述该关联子应用完成与所述模拟页面事件对象相匹配的用户界面响应,本发明对此不做限制。
例如,可选的,在某些可选的实施方式中,所述步骤六,包括:
所述该关联子应用的共享模块根据接收到的更新后的当前应用状态信息,生成与所述接收到的更新后的当前应用状态信息相匹配的模拟页面事件对象,其中,所述模拟页面事件对象与所述该关联子应用的参数定义相匹配;
所述该关联子应用的共享模块将所述模拟页面事件对象发送给所述该关联子应用的分发器;
所述该关联子应用的分发器接收到所述模拟页面事件对象后,根据所述模拟页面事件对象,完成与所述模拟页面事件对象相匹配的、所述该关联子应用的用户界面响应。
可选的,在某些可选的实施方式中,所述该关联子应用的分发器接收到所述模拟页面事件对象后,根据所述模拟页面事件对象,完成与所述模拟页面事件对象相匹配的、所述该关联子应用的用户界面响应,包括:
所述该关联子应用的分发器接收到所述模拟页面事件对象后,根据所述模拟页面事件对象,触发所述该关联子应用的回调模块,从而通过所述回调模块完成与所述模拟页面事件对象相匹配的、所述该关联子应用的用户界面响应。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述微前端架构的应用系统同步方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述微前端架构的应用系统同步方法。
如图3所示,本发明实施例提供了一种应用系统同步设备70,应用系统同步设备70包括至少一个处理器701、以及与处理器701连接的至少一个存储器702、总线703;其中,处理器701、存储器702通过总线703完成相互间的通信;处理器701用于调用存储器702中的程序指令,以执行上述的微前端架构的应用系统同步方法。本文中的应用系统同步设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有上述的微前端架构的应用系统同步方法包括的步骤的程序。
本申请是参照根据本申请实施例的方法、设备、系统和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带、磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (11)
1.一种微前端架构的应用系统,其特征在于,至少包括:主应用和至少两个子应用,所述主应用至少包括主状态库,所述主状态库用于存储所述微前端架构的应用系统中至少部分子应用的当前应用状态信息,所述至少两个子应用中包括第一子应用,所述第一子应用至少包括:第一共享模块、第一对象发生模块和第一分发器;
所述第一对象发生模块产生所述第一子应用的初始页面事件对象,并向所述第一分发器发送所述初始页面事件对象;
所述第一共享模块拦截所述初始页面事件对象,并将所述初始页面事件对象的信息发送至所述主应用,以使所述第一分发器无法获得所述初始页面事件对象;
所述主应用根据所述初始页面事件对象的信息更新所述主状态库中存储的、所述第一子应用的当前应用状态信息;
所述主应用确定所述初始页面事件对象的关联子应用,所述关联子应用至少包括所述第一子应用;
所述主应用将更新后的所述第一子应用的当前应用状态信息分发给各关联子应用的共享模块;
对任一所述关联子应用:该关联子应用的共享模块根据接收到的更新后的当前应用状态信息,生成模拟页面事件对象,并将所述模拟页面事件对象发送至所述关联子应用的分发器,以使所述关联子应用完成与所述模拟页面事件对象相匹配的用户界面响应。
2.根据权利要求1所述的微前端架构的应用系统,其特征在于,所述第一子应用还包括:第一子状态库;
所述第一共享模块将所述第一子应用的当前应用状态信息存储至所述第一子状态库。
3.一种微前端架构的应用系统同步方法,其特征在于,应用于一种微前端架构的应用系统,所述微前端架构的应用系统至少包括:主应用和至少两个子应用,所述主应用至少包括主状态库,所述主状态库用于存储所述微前端架构的应用系统中至少部分子应用的当前应用状态信息,所述至少两个子应用中包括第一子应用,所述第一子应用至少包括:第一共享模块、第一对象发生模块和第一分发器;
所述微前端架构的应用系统同步方法,包括:
所述第一对象发生模块产生所述第一子应用的初始页面事件对象,并向所述第一分发器发送所述初始页面事件对象;
所述第一共享模块拦截所述初始页面事件对象,并将所述初始页面事件对象的信息发送至所述主应用,以使所述第一分发器无法获得所述初始页面事件对象;
所述主应用根据所述初始页面事件对象的信息更新所述主状态库中存储的、所述第一子应用的当前应用状态信息;
所述主应用确定所述初始页面事件对象的关联子应用,所述关联子应用至少包括所述第一子应用;
所述主应用将更新后的所述第一子应用的当前应用状态信息分发给各关联子应用的共享模块;
对任一所述关联子应用:该关联子应用的共享模块根据接收到的更新后的当前应用状态信息,生成模拟页面事件对象,并将所述模拟页面事件对象发送至所述关联子应用的分发器,以使所述关联子应用完成与所述模拟页面事件对象相匹配的用户界面响应。
4.根据权利要求3所述的微前端架构的应用系统同步方法,其特征在于,所述关联子应用的共享模块根据接收到的更新后的当前应用状态信息,生成模拟页面事件对象,并将所述模拟页面事件对象发送至所述关联子应用的分发器,以使所述关联子应用完成与所述模拟页面事件对象相匹配的用户界面响应,包括:
所述关联子应用的共享模块根据接收到的更新后的当前应用状态信息,生成与所述接收到的更新后的当前应用状态信息相匹配的模拟页面事件对象,其中,所述模拟页面事件对象与所述关联子应用的参数定义相匹配;
所述关联子应用的共享模块将所述模拟页面事件对象发送给所述关联子应用的分发器;
所述关联子应用的分发器接收到所述模拟页面事件对象后,根据所述模拟页面事件对象,完成与所述模拟页面事件对象相匹配的、所述关联子应用的用户界面响应。
5.根据权利要求4所述的微前端架构的应用系统同步方法,其特征在于,所述关联子应用的分发器接收到所述模拟页面事件对象后,根据所述模拟页面事件对象,完成与所述模拟页面事件对象相匹配的、所述关联子应用的用户界面响应,包括:
所述关联子应用的分发器接收到所述模拟页面事件对象后,根据所述模拟页面事件对象,触发所述关联子应用的回调模块,从而通过所述回调模块完成与所述模拟页面事件对象相匹配的、所述关联子应用的用户界面响应。
6.根据权利要求3所述的微前端架构的应用系统同步方法,其特征在于,所述第一共享模块拦截所述初始页面事件对象,并将所述初始页面事件对象的信息发送至所述主应用,以使所述第一分发器无法获得所述初始页面事件对象,包括:
所述第一共享模块通过钩子函数,读取所述第一对象发生模块向所述第一分发器发送的所述第一子应用的初始页面事件对象,从而获得所述初始页面事件对象的信息;
所述第一共享模块消耗所述初始页面事件对象,以使所述第一分发器无法获得所述初始页面事件对象。
7.根据权利要求6所述的微前端架构的应用系统同步方法,其特征在于,所述第一共享模块消耗所述初始页面事件对象,以使所述第一分发器无法获得所述初始页面事件对象,包括:
所述第一共享模块直接阻断或更改所述初始页面事件对象的属性,以使所述第一分发器无法获得所述初始页面事件对象。
8.根据权利要求3所述的微前端架构的应用系统同步方法,其特征在于,所述主应用确定所述初始页面事件对象的关联子应用,包括:
所述主应用根据更新后的所述第一子应用的当前应用状态信息,确定与更新后的所述第一子应用的当前应用状态信息相关联的各关联子应用。
9.一种微前端架构的应用系统同步方法,其特征在于,应用于一种微前端架构的应用系统,所述微前端架构的应用系统至少包括:主应用和至少两个子应用,所述主应用存储有所述微前端架构的应用系统中至少部分子应用的当前应用状态信息,所述方法包括:
第一子应用拦截其内部的初始页面事件对象;
所述第一子应用将拦截的所述初始页面事件对象的信息发送至所述主应用;
所述主应用根据所述初始页面事件对象的信息更新所述主应用中存储的、所述第一子应用的当前应用状态信息;
所述主应用确定所述初始页面事件对象的关联子应用,所述关联子应用至少包括所述第一子应用;
所述主应用将更新后的所述第一子应用的当前应用状态信息分发给各所述关联子应用;
各所述关联子应用分别根据接收到的更新后的当前应用状态信息,生成模拟页面事件对象,以使所述关联子应用完成与所述模拟页面事件对象相匹配的用户界面响应。
10.一种存储介质,其特征在于,所述存储介质用于存储程序,所述程序被处理器执行时实现权利要求3至9中任一项所述的微前端架构的应用系统同步方法。
11.一种应用系统同步设备,其特征在于,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序,所述程序至少用于实现权利要求3至9中任一项所述的微前端架构的应用系统同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110035466.5A CN112363857B (zh) | 2021-01-12 | 2021-01-12 | 微前端架构的应用系统、同步方法、存储介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110035466.5A CN112363857B (zh) | 2021-01-12 | 2021-01-12 | 微前端架构的应用系统、同步方法、存储介质和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112363857A CN112363857A (zh) | 2021-02-12 |
CN112363857B true CN112363857B (zh) | 2021-04-02 |
Family
ID=74534851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110035466.5A Active CN112363857B (zh) | 2021-01-12 | 2021-01-12 | 微前端架构的应用系统、同步方法、存储介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112363857B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11778045B2 (en) | 2021-07-12 | 2023-10-03 | Red Hat, Inc. | Communication system for micro-frontends of a web application |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626124B (zh) * | 2021-08-16 | 2024-03-08 | 南京赛宁信息技术有限公司 | 一种用于iFrame微前端架构的组件状态共享方法与装置 |
US12067429B2 (en) | 2022-03-18 | 2024-08-20 | Red Hat, Inc. | Synchronizing variable values between an application shell and micro-frontends of a web application |
CN115277637B (zh) * | 2022-09-26 | 2023-01-13 | 中企云链(北京)金融信息服务有限公司 | 基于微前端架构的多域名项目的管理平台及高度聚合部署方法 |
CN118394548A (zh) * | 2024-06-28 | 2024-07-26 | 恒生电子股份有限公司 | 一种微前端跨应用信息共享方法与微前端架构 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110266795A (zh) * | 2019-06-20 | 2019-09-20 | 上海思询信息科技有限公司 | 一种基于Openstack平台控制方法 |
CN111796799A (zh) * | 2019-04-09 | 2020-10-20 | 广州腾讯科技有限公司 | 子应用开发方法、装置、计算机设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104267994B (zh) * | 2014-09-30 | 2017-10-31 | 北京奇虎科技有限公司 | 一种运行应用程序的装置和终端设备 |
CN106250179B (zh) * | 2016-07-26 | 2019-10-25 | 北京北森云计算股份有限公司 | 通过多语言云编译实现系统动态功能拦截扩展的方法 |
US10924545B2 (en) * | 2018-10-10 | 2021-02-16 | Citrix Systems, Inc. | Computer system providing mirrored SAAS application sessions and related methods |
-
2021
- 2021-01-12 CN CN202110035466.5A patent/CN112363857B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111796799A (zh) * | 2019-04-09 | 2020-10-20 | 广州腾讯科技有限公司 | 子应用开发方法、装置、计算机设备及存储介质 |
CN110266795A (zh) * | 2019-06-20 | 2019-09-20 | 上海思询信息科技有限公司 | 一种基于Openstack平台控制方法 |
Non-Patent Citations (2)
Title |
---|
A Progressive Web Application Based on;MANEL MENA;《IEEE Access》;20190731;全文 * |
基于混合模式构建前端表现层框架;雷明;《计算机与现代化》;20130531(第213期);全文 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11778045B2 (en) | 2021-07-12 | 2023-10-03 | Red Hat, Inc. | Communication system for micro-frontends of a web application |
Also Published As
Publication number | Publication date |
---|---|
CN112363857A (zh) | 2021-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112363857B (zh) | 微前端架构的应用系统、同步方法、存储介质和设备 | |
EP2947569B1 (en) | Hybrid applications operating between on-premise and cloud platforms | |
CN110365751B (zh) | 网关系统的业务处理方法、装置及设备 | |
CN107203419B (zh) | 应用程序中的模块间调用方法、装置及系统 | |
CN112288423A (zh) | 一种分布式框架的聚合支付方法和系统 | |
CN110769018A (zh) | 一种消息推送方法及装置 | |
CN116302708A (zh) | 基于负载均衡的数据备份方法、装置、设备及存储介质 | |
CN112416980B (zh) | 数据业务处理方法、装置及设备 | |
CN114840310A (zh) | 容器创建方法、装置、电子设备和计算机可读存储介质 | |
CN107896242B (zh) | 一种服务共享方法及装置 | |
CN116701053B (zh) | 生产环境数据库的数据备份恢复方法、装置、设备及介质 | |
CN112491943A (zh) | 数据请求方法、装置、存储介质和电子设备 | |
CN114095758B (zh) | 云图像截取方法、相关装置 | |
CN112448833A (zh) | 一种多管理域的通信方法和装置 | |
US20150088866A1 (en) | Accessing application services from forms | |
CN117632395A (zh) | 工作流处理方法、装置、设备、存储介质和程序产品 | |
CN108089899B (zh) | 查询报表的实现方法及装置 | |
CN113495747B (zh) | 一种灰度发布方法和装置 | |
CN113031960B (zh) | 代码编译方法、装置、服务器及存储介质 | |
US11431823B1 (en) | Systems and methods for context-aware event ordering protocol for distributed service systems | |
Pugdeethosapol et al. | Dynamic configuration of the computing nodes of the ALICE O 2 system | |
CN117009327B (zh) | 一种数据处理方法、装置及计算机设备、介质 | |
CN113342540B (zh) | 终端用户缴费开机方法、系统、计算机设备和存储介质 | |
CN109460288B (zh) | 一种事务处理方法、管理服务器、事务处理系统和存储介质 | |
CN110191141B (zh) | 服务调用信息处理方法、装置及计算机系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |