CN114327687B - 微前端模式下子应用的构建方法、装置、设备及存储介质 - Google Patents
微前端模式下子应用的构建方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114327687B CN114327687B CN202210221144.4A CN202210221144A CN114327687B CN 114327687 B CN114327687 B CN 114327687B CN 202210221144 A CN202210221144 A CN 202210221144A CN 114327687 B CN114327687 B CN 114327687B
- Authority
- CN
- China
- Prior art keywords
- application
- sub
- unique identifier
- identifier
- instance
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提供一种微前端模式下子应用的构建方法、装置、设备及存储介质,涉及互联网技术领域。该方法包括:在检测到向主应用中注册多个子应用时,生成各所述子应用对应的唯一标识;若检测到所述主应用针对所述子应用的加载事件,则将所述子应用的初始根标识更新为所述唯一标识;控制所述主应用根据更新后的初始根标识,加载渲染所述子应用。相对于现有技术,避免了一个主应用下的多个子应用根标识名称冲突的问题。
Description
技术领域
本申请涉及互联网技术领域,具体而言,涉及一种微前端模式下子应用的构建方法、装置、设备及存储介质。
背景技术
微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。各个前端应用可以独立运行、独立开发、独立部署。
在多实例的微前端应用场景下,对子应用的注册方式只能选择与路由不关联的注册方式对各子应用进行注册,即只能通过手动加载各子应用的方式,由用户在配置文件中通过手动设置的方式,对各子应用的根标识节点的名称进行设置,随后将各子应用对应的渲染内容挂载到该子应用对应的根标识节点中,来实现同一时刻下多个子应用共存于单个页面中。
但是这样的注册方式,由于人工设置的误差性,或由于没有严格设置配置约定,很容易出现一个主应用下的多个子应用的根标识名称出现重名导致的冲突问题,或是忘记更改各子应用的默认根标识名称导致的根标识名称冲突的问题。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种微前端模式下子应用的构建方法、装置、设备及存储介质,以解决现有技术中一个主应用下的多个子应用根标识名称冲突的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请一实施例提供了一种微前端模式下子应用的构建方法,所述方法包括:
在检测到向主应用中注册多个子应用时,生成各所述子应用对应的唯一标识;
若检测到所述主应用针对所述子应用的加载事件,则将所述子应用的初始根标识更新为所述唯一标识;
控制所述主应用根据更新后的初始根标识,加载渲染所述子应用。
可选地,所述生成各所述子应用对应的唯一标识,包括:
根据预设的一组规则,生成各所述子应用对应的唯一标识。
可选地,所述若检测到所述主应用针对所述子应用的加载事件,则将所述子应用的初始根标识更新为所述唯一标识,包括:
在所述主应用加载所述子应用时,由所述主应用将所述唯一标识传递至所述子应用,以使所述子应用将所述初始根标识更新为所述唯一标识。
可选地,所述由所述主应用将所述唯一标识传递至所述子应用,包括:
由所述主应用将所述唯一标识作为参数,通过事件总线的方式传递至所述子应用。
可选地,所述方法还包括:
将所述子应用的挂载点的标识更新为所述唯一标识;
所述控制所述主应用根据更新后的初始根 标识,加载渲染所述子应用,包括:
控制所述主应用基于更新后的挂载点的标识,加载渲染所述子应用。
可选地,所述方法还包括:
在检测到向子应用中注册多个实例时,生成各所述实例对应的唯一标识;
若检测到所述子应用针对所述实例的加载事件,则将所述实例的初始根标识更新为所述唯一标识;
控制所述子应用根据更新后的初始根标识,加载渲染所述实例。
可选地,所述若检测到所述子应用针对所述实例的加载事件,则将所述实例的初始根标识更新为所述唯一标识,包括:
在所述子应用加载所述实例时,由所述子应用将所述唯一标识传递至所述实例,以使所述实例将所述初始根标识更新为所述唯一标识。
第二方面,本申请另一实施例提供了一种微前端模式下子应用的构建装置,所述装置包括:生成模块、更新模块和加载模块,其中:
所述生成模块,用于在检测到向主应用中注册多个子应用时,生成各所述子应用对应的唯一标识;
所述更新模块,用于若检测到所述主应用针对所述子应用的加载事件,则将所述子应用的初始根标识更新为所述唯一标识;
所述加载模块,用于控制所述主应用根据更新后的初始根标识,加载渲染所述子应用。
可选地,所述生成模块,具体用于根据预设的一组规则,生成各所述子应用对应的唯一标识。
可选地,所述装置还包括:传递模块,用于在所述主应用加载所述子应用时,由所述主应用将所述唯一标识传递至所述子应用,以使所述子应用将所述初始根标识更新为所述唯一标识。
可选地,所述传递模块,具体用于由所述主应用将所述唯一标识作为参数,通过事件总线的方式传递至所述子应用。
可选地,所述更新模块,具体用于将所述子应用的挂载点的标识更新为所述唯一标识;
所述加载模块,具体用于控制所述主应用基于更新后的挂载点的标识,加载渲染所述子应用。
可选地,所述生成模块,具体用于在检测到向子应用中注册多个实例时,生成各所述实例对应的唯一标识;
所述更新模块,具体用于若检测到所述子应用针对所述实例的加载事件,则将所述实例的初始根标识更新为所述唯一标识;
所述加载模块,具体用于控制所述子应用根据更新后的初始根标识,加载渲染所述实例。
可选地,所述传递模块,具体用于在所述子应用加载所述实例时,由所述子应用将所述唯一标识传递至所述实例,以使所述实例将所述初始根标识更新为所述唯一标识。
第三方面,本申请另一实施例提供了一种微前端模式下子应用的构建设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当微前端模式下子应用的构建设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述第一方面任一所述方法的步骤。
第四方面,本申请另一实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面任一所述方法的步骤。
本申请的有益效果是:采用本申请提供的微前端模式下子应用的构建方法,由于每个子应用在注册时均会生成自己对应的唯一标识,因此在后续在加载渲染各子应用的时候,可以直接根据更新后的初始根标识,也即待渲染子应用的唯一标识唯一确定该初始根标识对应的待渲染子应用,并根据更新后的初始根标识对待渲染子应用进行加载渲染,解决了多个子应用的初始根标识重复或冲突的问题,保证了加载各子应用时的准确性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例提供的微前端模式下子应用的构建方法的流程示意图;
图2为本申请另一实施例提供的微前端模式下子应用的构建方法的流程示意图;
图3为本申请另一实施例提供的微前端模式下子应用的构建方法的流程示意图;
图4为本申请一实施例提供的微前端模式下子应用的构建装置的结构示意图;
图5为本申请另一实施例提供的微前端模式下子应用的构建装置的结构示意图;
图6为本申请一实施例提供的微前端模式下子应用的构建设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
为方便对本申请的理解,下述对本申请的应用场景进行简单介绍,本申请应用于微前端下子应用的构建场景下,微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将全球广域网或万维网(World Wide Web,Web)应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。各个前端应用均可以独立运行、独立开发、独立部署。
其中,在微前端场景下,加载子应用的场景包含单实例场景和多实例场景。单实例场景是在同一时刻下,一个页面中只有一个子应用被展示。多实例场景是在同一时刻下,一个页面中有多个子应用被展示;其中,多个子应用中,每个子应用都会导出自己对应的生命周期钩子,以使主应用在适当的时机通过生命钩子调用对应的子应用;其中,生命周期为主应用在框架中预先定义好的,钩子为在生命周期的代码执行的过程中的回调函数,也就是执行调用子应用中所需的一些处理逻辑,将调用子应用的处理逻辑挂在在生命周期上,就称为生命周期钩子。
在本申请的实施例中,针对的微前端的应用场景为多实例场景。
在现有技术中的实施例中,微前端场景下主应用注册子应用时,一般存在支持两种注册方式:与路由关联的子应用的注册方式和与路由不关联的子应用的注册方式。与路由关联的注册方式是指子应用信息注册完成之后,一旦浏览器的网络地址(UniformResource Locator, url,统一资源定位器)发生变化,便会自动触发微前端架构的匹配逻辑,所有主动规则(activeRul)匹配上的子应用就会被插入到指定的主应用提供的容器(container)中,同时依次调用各匹配上的子应用对应的生命周期钩子,以实现对各子应用的加载。与路由不关联的注册方式则需要用户通过手动加载的方式,加载各子应用。
在多实例场景下,主应用注册子应用时只能选择与路由不关联的注册方式对各子应用进行注册,即只能通过手动加载各子应用的方式,来实现同一时刻下多个子应用共存于单个页面中。
对于应用程序入口(App Entry)的配置方式:子应用通常使用超文本标记语言(Hyper Text Markup Language,HTML)入口的方式直接将打出来的HTML作为该子应用的入口,主应用使用获取 html 的方式获取各子应用对应的静态资源,同时将HTML 文件作为各子节点塞到主应用对应的配置的容器中。
目前主流MVVM(Model-View-ViewModel)框架都是在构建子应用时,一般都是用户在配置文件中通过手动设置的方式,对各子应用的根标识节点的名称进行设置,随后将各子应用对应的渲染内容挂载到该子应用对应的根标识节点中,从而解决了各子应用都使用默认的根标识节点名称的问题。
但是这样的挂载方式在微前端的多实例场景下,由于人工设置的误差性,或由于没有严格设置配置约定,很容易出现一个主应用下的多个子应用的根标识名称出现重名,导致多个子应用的根标识名称冲突的问题,或是忘记更改各子应用的默认根标识名称导致的根标识名称冲突的问题。
根标识名称冲突时,会导致在运行各子应用对应的HTML 文件时,主应用的容器中很容易出现多个相同的根标识节点。并且由于子应用的HTML是主应用通过获取 html的方式来获取的,这就会导致拥有相同根标识节点的各子应用的HTML均会渲染到同一个根标识节点中,导致各子应用会相互覆盖。
为解决现有技术中存在的根标识名称冲突,导致各子应用会相互覆盖的问题,本申请提供了一种微前端模式下的子应用构建方法,以解决现有技术中主应用的容器中很容易出现多个相同的根标识节点,导致各子应用会相互覆盖的问题。如下结合多个具体的应用示例,对本申请实施例所提供的一种微前端模式下子应用的构建方法进行解释说明。
在一种可能的实施方式中,本发明实施例提供了一种微前端模式下子应用的构建方法,图1为本申请一实施例提供的一种微前端模式下子应用的构建方法的流程示意图,如图1所示,该方法包括:
S101:在检测到向主应用中注册多个子应用时,生成各子应用对应的唯一标识。
在本申请的实施例中,主应用在注册各子应用时,会根据预设的一组规则,为各子应用生成各子应用对应的唯一标识microAppId。
其中,一组规则为预先设定的,在一些可能的实施例中,设定方式例如可以为:若主应用当前需要注册100个子应用,则规则例如可以自动生成100个互不相同的标识,即每个标识均为唯一的,并在主应用注册各子应用时,为各子应用分配各子应用对应的标识,其中,分配规则例如可以为随机分配,或顺序分配,本申请在此不做限制,已经为一个子应用分配过的标识将不会再为其他子应用分配,从而保证了为各子应用分配的对应的标识均为唯一的,主应用下的各子应用对应的标识均互不相同。
在另一些可能的实施例中,设定方式例如还可以为:一组规则为预先设定的算法,在主应用注册各子应用时,可以直接根据预先设定的算法为各子应用生成唯一的标识信息,其中,预先设定的算法每次计算得到的标识信息均为不同的,从而保证了主应用为各子应用确定的对应的标识均互不相同,保证了主应用下的各子应用对应的标识均互不相同互不冲突;应当理解,上述实施例仅为示例性说明,具体一组规则的规则设定方式可以根据用户需要灵活调整,并不以上述实施例给出的为限。
S102:若检测到主应用针对子应用的加载事件,则将子应用的初始根标识更新为唯一标识。
其中,在子应用被主应用加载渲染前,即在主应用加载子应用时,由主应用将待加载子应用的唯一标识传递至该子应用,以使子应用将初始根标识更新为唯一标识。
在本申请的实施例中,主应用将唯一标识传递至子应用的方式例如可以为:由主应用将唯一标识作为参数,通过事件总线的方式传递至子应用。
以使子应用在接收到主应用传递的参数后,通过子应用使用的插件,在运行该子应用时,在该子应用的对应的配置文件中,将构建该子应用时设置的根标识名称或默认根标识名称替换为该子应用接收到的参数,也即将根标识名称或默认根标识名称替换为该子应用接收到的子应用对应的唯一标识。
在一些可能的实施例中,子应用的初始根标识为构建子应用时生成的,生成方式例如可以为自动生成的默认根标识,或者用户基于默认根标识自行进行修改,或重新输入的根标识,应当理解上述实施例仅为示例性说明,具体初始根标识的生成方式可以根据用户需要灵活调整,并不以上述实施例给出的为限。
S103:控制主应用根据更新后的初始根标识,加载渲染子应用。
其中,由于加载渲染前,各子应用的初始根标识均为更新过的,因此各子应用的标识均为唯一对应的,可以根据根标识,在主应用下的多个子应用中唯一确定根标识对应的子应用,从而主应用中就不会存在子应用的根标识冲突的问题,根据更新后的初始根标识,主应用在对各子应用进行渲染时,可以直接根据根标识在主应用对应的多个子应用中,唯一确定待加载渲染的子应用,并对其进行渲染。
采用本申请提供的微前端模式下子应用的构建方法,由于每个子应用在注册时均会生成自己对应的唯一标识,因此在后续在加载渲染各子应用的时候,可以直接根据更新后的初始根标识,也即待渲染子应用的唯一标识唯一确定该初始根标识对应的待渲染子应用,并根据更新后的初始根标识对待渲染子应用进行加载渲染,解决了多个子应用的初始根标识重复或冲突的问题,保证了加载各子应用时的准确性。
可选地,在上述实施例的基础上,本申请实施例还可提供一种微前端模式下子应用的构建方法,如下结合附图对上述方法的实现过程进行示例说明。图2为本申请另一实施例提供的一种微前端模式下子应用的构建方法的流程示意图,如图2所示,该方法还可包括:
S104:在检测到向子应用中注册多个实例时,生成各实例对应的唯一标识。
在本申请的实施例中,多实例场景下,每个子应用下还可能注册有多个实例,每个实例也有自己对应的标识信息,各实例的渲染也是通过标识信息,在多个实例中确定标识信息对应的实例并进行渲染,为了保证各实例之间的渲染互不冲突,也需要保证每个实例均有自己唯一对应的标识,即通过唯一标识,可以在多个实例中唯一确定该标识对应的实例。
S105:若检测到子应用针对实例的加载事件,则将实例的初始根标识更新为唯一标识。
在本申请的实施例中,在实例被渲染之前,即在子应用加载实例时,由子应用将生成的唯一标识传递至实例,以使实例将其初始根标识更新为接收到的唯一标识;其中,子应用传递唯一标识的方式例如可以为:子应用将唯一标识作为参数,通过事件总线的方式传递至对应的实例,以使实例根据接收到的唯一标识对其初始根标识进行更新,具体可以根据用户需要灵活调整,并不以上述实施例给出的为限。
以使实例在接收到子应用传递的参数后,通过实例使用的插件,在运行时该实例时,在该实例对应的配置文件中,将构建实例时设置的根标识名称或默认根标识名称替换为接收到的参数,也即将根标识名称替换为该实例接收到的对应的唯一标识。
在一些可能的实施例中,实例的初始根标识的生成方式构建实例时生成的,生成方式例如可以为:在构建该实例时自动生成的默认根标识,或者用户在构建该实例时,基于默认根标识自行对其进行修改获得的,或用户重新输入的根标识获得的,应当理解上述实施例仅为示例性说明,具体各实例对应的初始根标识的生成方式可以根据用户需要灵活调整,并不以上述实施例给出的为限。
S106:控制子应用根据更新后的初始根标识,加载渲染实例。
其中,由于加载渲染前,各实例的初始根标识均为更新过的,因此各实例的标识均为唯一对应的,从而主应用在加载各实例时,就不会存在由于实例的根标识冲突导致的加载冲突的问题,主应用可以直接根据更新后的初始根标识,在主应用对应的多个实例中,唯一确定更新后的初始根标识对用的待加载渲染的子应用,并对其进行渲染。
在本申请的实施例中,主应用下包括的多个子应用,以及多个子应用下的多个实例,多个子应用和多个实例均存放在主应用的容器中,存放方式例如可以为:在主应用的容器中生成多个子应用中各子应用对应的挂载点,以及多个实例中各实例对应的挂载点,其中,挂载点的标识信息即为各子应用,或各实例对应的唯一标识;其中,标识信息是挂载点的一个属性信息,更新挂载点的标识信息和更新初始根标识为同一事件。
图3为本申请另一实施例提供的微前端模式下子应用的构建方法的流程示意图,如图3所示,主应用下包括子应用A、子应用B和子应用C,在主应用注册子应用A、子应用B和子应用C时,子应用A、子应用B和子应用C的根标识均为默认值000,这就导致了各子应用的根标识互相冲突,无法根据根标识唯一确定对应的子应用,造成主应用在渲染各子应用时,会发生子应用之间相互覆盖的问题,因此,在本申请的实施例中,主应用在注册各子应用时,会分别根据预设的一组规则为各子应用生成了对应的唯一标识,如图3所示,主应用为子应用A生成的对应的唯一标识为101,主应用为子应用B生成的对应的唯一标识为102,主应用为子应用C生成的对应的唯一标识为103,可见子应用A、子应用B和子应用C之间的唯一标识互不相同,根据唯一标识102可以直接确定对应的子应用为子应用B,根据唯一标识101可以直接确定对应的子应用为子应用A,同样根据唯一标识103可以直接确定对应的子应用为子应用C。
随后,主应用通过事件总线的方式将各子应用对应的唯一标识分别传递给各子应用,以使各子应用根据自己对应的唯一标识对其根标识进行替换更新;在本申请的实施例中,主应用将唯一标识101传递给子应用A,将唯一标识102传递给子应用B,将唯一标识103传递给子应用C,各子应用在接收到主应用传递的各子应用对应的唯一标识后,将各子应用的根标识替换为接收到的主应用发送的唯一标识,此时,替换后的子应用A对应的根标识为唯一标识101,替换后的子应用B对应的根标识为唯一标识102,替换后的子应用C对应的根标识为唯一标识103,至此主应用完成对各子应用的注册;应当理解上述实施例仅为示例性说明,具体主应用下包括的子应用的数量,以及各子应用对应的标识信息,均可以根据用户需要灵活调整,并不以上述实施例给出的为限。
采用本申请提供的微前端模式下子应用的构建方法,在主应用注册各子应用时,需要对各子应用对其对应的根标识名称进行更新,在各子应用更新根标识名称时,使用的均为主应用生成的该子应用对应的唯一标识,并在在子应用运行时将该子应用的根标识名称更改为对应的唯一标识,从而保证了各子应用根标识名称的唯一性,一个主应用下不会存在名称重复的两个子应用,从而实现了运行时不同子应用或同一子应用多实例挂载根id 冲突问题,保证了子应用挂载时的准确性。
下述结合附图对本申请所提供的微前端模式下子应用的构建装置进行解释说明,该微前端模式下子应用的构建装置可执行上述图1-图3任一微前端模式下子应用的构建方法,其具体实现以及有益效果参照上述,如下不再赘述。
图4为本申请一实施例提供的微前端模式下子应用的构建装置的结构示意图,如图4所示,该装置包括:生成模块201、更新模块202和加载模块203,其中:
生成模块201,用于在检测到向主应用中注册多个子应用时,生成各子应用对应的唯一标识;
更新模块202,用于若检测到主应用针对子应用的加载事件,则将子应用的初始根标识更新为唯一标识;
加载模块203,用于控制主应用根据更新后的初始根标识,加载渲染子应用。
可选地,生成模块201,具体用于根据预设的一组规则,生成各子应用对应的唯一标识。
可选地,在上述实施例的基础上,本申请实施例还可提供一种微前端模式下子应用的构建装置,如下结合附图对上述图4给出的装置的实现过程进行示例说明。图5为本申请另一实施例提供的微前端模式下子应用的构建装置的结构示意图,如图5所示,该装置还包括:传递模块204,用于在主应用加载子应用时,由主应用将唯一标识传递至子应用,以使子应用将初始根标识更新为唯一标识。
可选地,传递模块204,具体用于由主应用将唯一标识作为参数,通过事件总线的方式传递至子应用。
可选地,更新模块202,具体用于将子应用的挂载点的标识更新为唯一标识;
加载模块203,具体用于控制主应用基于更新后的挂载点的标识,加载渲染子应用。
可选地,生成模块201,具体用于在检测到向子应用中注册多个实例时,生成各实例对应的唯一标识;
更新模块202,具体用于若检测到子应用针对实例的加载事件,则将实例的初始根标识更新为唯一标识;
加载模块203,具体用于控制子应用根据更新后的初始根标识,加载渲染实例。
可选地,传递模块204,具体用于在子应用加载实例时,由子应用将唯一标识传递至实例,以使实例将初始根标识更新为唯一标识。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图6为本申请一实施例提供的微前端模式下子应用的构建设备的结构示意图,该微前端模式下子应用的构建设备可以集成于终端设备或者终端设备的芯片。
如图6所示,该微前端模式下子应用的构建设备包括:处理器501、存储介质502和总线503。
处理器501用于存储程序,处理器501调用存储介质502存储的程序,以执行上述图1-图3对应的方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种程序产品,例如存储介质,该存储介质上存储有计算机程序,包括程序,该程序在被处理器运行时执行上述方法对应的实施例。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种微前端模式下子应用的构建方法,其特征在于,所述方法包括:
在检测到向主应用中注册多个子应用时,生成各所述子应用对应的唯一标识;
若检测到所述主应用针对所述子应用的加载事件,则将所述子应用的初始根标识更新为所述唯一标识;
控制所述主应用根据更新后的初始根标识,加载渲染所述子应用。
2.如权利要求1所述的方法,其特征在于,所述生成各所述子应用对应的唯一标识,包括:
根据预设的一组规则,生成各所述子应用对应的唯一标识。
3.如权利要求1所述的方法,其特征在于,所述若检测到所述主应用针对所述子应用的加载事件,则将所述子应用的初始根标识更新为所述唯一标识,包括:
在所述主应用加载所述子应用时,由所述主应用将所述唯一标识传递至所述子应用,以使所述子应用将所述初始根标识更新为所述唯一标识。
4.如权利要求3所述的方法,其特征在于,所述由所述主应用将所述唯一标识传递至所述子应用,包括:
由所述主应用将所述唯一标识作为参数,通过事件总线的方式传递至所述子应用。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
将所述子应用的挂载点的标识更新为所述唯一标识;
所述控制所述主应用根据更新后的初始根 标识,加载渲染所述子应用,包括:
控制所述主应用基于更新后的挂载点的标识,加载渲染所述子应用。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
在检测到向子应用中注册多个实例时,生成各所述实例对应的唯一标识;
若检测到所述子应用针对所述实例的加载事件,则将所述实例的初始根标识更新为所述唯一标识;
控制所述子应用根据更新后的初始根标识,加载渲染所述实例。
7.如权利要求6所述的方法,其特征在于,所述若检测到所述子应用针对所述实例的加载事件,则将所述实例的初始根标识更新为所述唯一标识,包括:
在所述子应用加载所述实例时,由所述子应用将所述唯一标识传递至所述实例,以使所述实例将所述初始根标识更新为所述唯一标识。
8.一种微前端模式下子应用的构建装置,其特征在于,所述装置包括:生成模块、更新模块和加载模块,其中:
所述生成模块,用于在检测到向主应用中注册多个子应用时,生成各所述子应用对应的唯一标识;
所述更新模块,用于若检测到所述主应用针对所述子应用的加载事件,则将所述子应用的初始根标识更新为所述唯一标识;
所述加载模块,用于控制所述主应用根据更新后的初始根标识,加载渲染所述子应用。
9.一种微前端模式下子应用的构建设备,其特征在于,所述设备包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当所述微前端模式下子应用的构建设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行上述权利要求1-7任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210221144.4A CN114327687B (zh) | 2022-03-09 | 2022-03-09 | 微前端模式下子应用的构建方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210221144.4A CN114327687B (zh) | 2022-03-09 | 2022-03-09 | 微前端模式下子应用的构建方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114327687A CN114327687A (zh) | 2022-04-12 |
CN114327687B true CN114327687B (zh) | 2022-05-20 |
Family
ID=81033352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210221144.4A Active CN114327687B (zh) | 2022-03-09 | 2022-03-09 | 微前端模式下子应用的构建方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327687B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116501364A (zh) * | 2023-05-05 | 2023-07-28 | 南京领行科技股份有限公司 | 一种应用注册方法、装置和微前端系统 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015122552A1 (ko) * | 2014-02-11 | 2015-08-20 | 주식회사 톡스 | 메인앱에서 서브앱을 생성하기 위한 시스템 및 그 방법 |
CN106502736A (zh) * | 2016-10-18 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 应用程序处理方法和装置 |
CN109302321A (zh) * | 2018-11-13 | 2019-02-01 | 珠海格力电器股份有限公司 | 服务器、业务需求处理系统、方法和监控系统 |
CN109542538A (zh) * | 2018-11-22 | 2019-03-29 | 郑州云海信息技术有限公司 | 一种子系统管理方法和系统 |
CN110708368A (zh) * | 2019-09-25 | 2020-01-17 | 北京计算机技术及应用研究所 | 一种基于路由分发的微前端系统和方法 |
CN111078447A (zh) * | 2019-11-24 | 2020-04-28 | 杭州安恒信息技术股份有限公司 | 一种微服务架构中的异常定位方法、装置、设备、介质 |
CN111212327A (zh) * | 2020-01-08 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 一种播放设备的控制方法、装置和存储介质 |
US10678600B1 (en) * | 2019-03-01 | 2020-06-09 | Capital One Services, Llc | Systems and methods for developing a web application using micro frontends |
CN111367615A (zh) * | 2018-12-26 | 2020-07-03 | 卓望数码技术(深圳)有限公司 | 方便容器实例调度的方法、装置、设备及存储介质 |
CN112416415A (zh) * | 2020-09-18 | 2021-02-26 | 山东英信计算机技术有限公司 | 一种前端微服务实现方法及相关组件 |
CN112511608A (zh) * | 2020-11-19 | 2021-03-16 | 中国平安财产保险股份有限公司 | 微服务模块注册与测试方法、装置、设备及存储介质 |
CN112559069A (zh) * | 2020-12-08 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 子应用的运行控制方法、装置、存储介质和电子设备 |
CN112631689A (zh) * | 2021-01-04 | 2021-04-09 | 北京字节跳动网络技术有限公司 | 一种应用程序加载的方法、装置以及计算机存储介质 |
CN113590185A (zh) * | 2021-09-28 | 2021-11-02 | 苏州浪潮智能科技有限公司 | 基于微前端的页面国际化配置方法、装置、设备及介质 |
-
2022
- 2022-03-09 CN CN202210221144.4A patent/CN114327687B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015122552A1 (ko) * | 2014-02-11 | 2015-08-20 | 주식회사 톡스 | 메인앱에서 서브앱을 생성하기 위한 시스템 및 그 방법 |
CN106502736A (zh) * | 2016-10-18 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 应用程序处理方法和装置 |
CN109302321A (zh) * | 2018-11-13 | 2019-02-01 | 珠海格力电器股份有限公司 | 服务器、业务需求处理系统、方法和监控系统 |
CN109542538A (zh) * | 2018-11-22 | 2019-03-29 | 郑州云海信息技术有限公司 | 一种子系统管理方法和系统 |
CN111367615A (zh) * | 2018-12-26 | 2020-07-03 | 卓望数码技术(深圳)有限公司 | 方便容器实例调度的方法、装置、设备及存储介质 |
US10678600B1 (en) * | 2019-03-01 | 2020-06-09 | Capital One Services, Llc | Systems and methods for developing a web application using micro frontends |
CN110708368A (zh) * | 2019-09-25 | 2020-01-17 | 北京计算机技术及应用研究所 | 一种基于路由分发的微前端系统和方法 |
CN111078447A (zh) * | 2019-11-24 | 2020-04-28 | 杭州安恒信息技术股份有限公司 | 一种微服务架构中的异常定位方法、装置、设备、介质 |
CN111212327A (zh) * | 2020-01-08 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 一种播放设备的控制方法、装置和存储介质 |
CN112416415A (zh) * | 2020-09-18 | 2021-02-26 | 山东英信计算机技术有限公司 | 一种前端微服务实现方法及相关组件 |
CN112511608A (zh) * | 2020-11-19 | 2021-03-16 | 中国平安财产保险股份有限公司 | 微服务模块注册与测试方法、装置、设备及存储介质 |
CN112559069A (zh) * | 2020-12-08 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 子应用的运行控制方法、装置、存储介质和电子设备 |
CN112631689A (zh) * | 2021-01-04 | 2021-04-09 | 北京字节跳动网络技术有限公司 | 一种应用程序加载的方法、装置以及计算机存储介质 |
CN113590185A (zh) * | 2021-09-28 | 2021-11-02 | 苏州浪潮智能科技有限公司 | 基于微前端的页面国际化配置方法、装置、设备及介质 |
Non-Patent Citations (5)
Title |
---|
《The Architecture of Micro-services and the Separation of Frond-end and Back-end Applied in a Campus Information System》;Yifei Gong et al.;《2020 IEEE International Conference on Advances in Electrical Engineering and Computer Applications( AEECA)》;20201006;全文 * |
《基于IPTV的大数据可视化系统设计与实现》;赵文静;《中国优秀硕士论文全文数据库(电子期刊)信息科技辑》;20210215;全文 * |
《基于微前端的旅行社业务支撑系统的设计与实现》;杨彩芳;《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》;20190915;全文 * |
《如何设计微前端中的主子路由调度》;阿里云开发者;《CSDN技术社区》;20200622;全文 * |
《微前端技术的发展与应用》;张洁 等;《科技创新与应用》;20220228;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114327687A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194538B (zh) | 基于分布式协调的测试方法、装置、服务器及存储介质 | |
US10826768B2 (en) | Controlled node configuration | |
CN112506617B (zh) | Kubernetes集群中边车容器的镜像更新方法及装置 | |
CN111464380B (zh) | 多个业务项目的并行测试方法、装置及系统 | |
CN109117252B (zh) | 基于容器的任务处理的方法、系统及容器集群管理系统 | |
CN108958949B (zh) | 应用程序的调用方法及系统 | |
EP3358786B1 (en) | Information processing method in m2m and apparatus | |
CN111176801B (zh) | 一种多进程管理方法、装置、设备及存储介质 | |
CN108306844B (zh) | 用于服务器与客户端之间的api通信的方法 | |
CN107341054B (zh) | 任务执行方法、装置及计算机可读存储介质 | |
US10715628B2 (en) | Attribute operating method and device | |
CN114327687B (zh) | 微前端模式下子应用的构建方法、装置、设备及存储介质 | |
CN110474960B (zh) | 一种虚拟化网络中业务部署的方法和装置 | |
CN109104368B (zh) | 一种请求连接方法、装置、服务器及计算机可读存储介质 | |
CN112363775A (zh) | 动态修改微服务配置信息的方法及系统、存储介质 | |
JP2017517785A5 (zh) | ||
CN112765030A (zh) | 测试方法、装置、电子设备及计算机存储介质 | |
CN116233217B (zh) | 基于路由的页面跳转方法、装置、电子设备及存储介质 | |
CN110955460B (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN109962914B (zh) | 一种防火墙配置方法及装置 | |
CN116382694A (zh) | 一种提升容器环境下Maven工程编译速度的方法 | |
CN116755788A (zh) | 一种线上规则修改方法、装置、设备及存储介质 | |
CN110782040A (zh) | 一种pytorch任务训练方法、装置、设备及介质 | |
CN111176652A (zh) | 应用程序管理的方法、装置、设备和介质 | |
JP2020009144A (ja) | 情報処理装置、移動体、情報処理方法、およびプログラム |
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 |