CN111176648A - 免安装程序转换处理方法、装置、电子设备及存储介质 - Google Patents

免安装程序转换处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111176648A
CN111176648A CN201811330369.3A CN201811330369A CN111176648A CN 111176648 A CN111176648 A CN 111176648A CN 201811330369 A CN201811330369 A CN 201811330369A CN 111176648 A CN111176648 A CN 111176648A
Authority
CN
China
Prior art keywords
data
component
state management
installation
program
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.)
Granted
Application number
CN201811330369.3A
Other languages
English (en)
Other versions
CN111176648B (zh
Inventor
董宏平
彭庆文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Didi Infinity Technology and Development Co Ltd
Original Assignee
Beijing Didi Infinity Technology and Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Didi Infinity Technology and Development Co Ltd filed Critical Beijing Didi Infinity Technology and Development Co Ltd
Priority to CN201811330369.3A priority Critical patent/CN111176648B/zh
Publication of CN111176648A publication Critical patent/CN111176648A/zh
Application granted granted Critical
Publication of CN111176648B publication Critical patent/CN111176648B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种免安装程序转换处理方法、装置、电子设备及存储介质,涉及计算机软件技术领域,其中,该方法包括:获取免安装程序的开发源组件,所述开发源组件包括用于构成免安装程序的数据;采用预设数据响应转换函数,将所述开发源组件转换为响应式组件;根据所述响应式组件生成数据响应式免安装程序。本申请实施例中,采用预设数据响应转换函数,将开发源组件转换为响应式组件,进而将响应式组件配置为响应式组件,生成数据响应式免安装程序,实现了在需要更新免安装程序的视图时,修改该视图对应的数据即可,进而可以自动更新这部分视图,从而在维持较高视图渲染效率的同时提高用户的开发体验和开发效率。

Description

免安装程序转换处理方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机软件技术领域,具体而言,涉及一种免安装程序转换处理方法、装置、电子设备及存储介质。
背景技术
随着智能终端、计算机软件技术的发展,用户依赖的应用程序越来越多,例如购物、出行、支付等,都可以通过相应的应用程序完成。但是目前的应用程序都需要用户先下载进行安装,操作流程较为复杂。为了更好地提升用户体验,小程序应运而生。小程序是一种免下载免安装就可以使用的应用,可以集成于其他应用程序中,例如在微信等即时通信的应用程序中只要搜索小程序的名字就可以打开小程序进行使用,不仅操作方便也可以节约终端的内存。
目前,小程序的开发主要基于微信的开发框架(wepy),这种开发框架基于编译转换和封装,当调整局部数据时,小程序的页面需要全局进行渲染,视图更新效率较低。
发明内容
有鉴于此,本申请实施例的目的在于提供一种免安装程序转换处理方法、装置、电子设备及存储介质,能够通过采用全新的开发框架解决现有技术中存在的小程序开发效率低的问题,达到改善视图渲染效果、提高小程序渲染效率的效果。
一方面,本申请实施例提供一种免安装程序转换处理方法,包括:
获取免安装程序的开发源组件,开发源组件包括用于构成免安装程序的数据;采用预设数据响应转换函数,将开发源组件转换为响应式组件;根据所述响应式组件生成数据响应式免安装程序。
可选地,采用预设数据响应转换函数,将开发源组件转换为响应式组件,包括:采用预设数据响应转换函数,将开发源组件的数据(date)转换为可观察数据;初始化可观察数据、以及计算属性,并建立数据和视图渲染的依赖关系,其中,依赖关系用于根据数据变化调用视图渲染函数。
可选地,根据响应式组件生成数据响应式免安装程序之后,还包括:获取免安装程序中目标组件的编辑代码,其中,所述编辑代码为所述目标组件修改后的数据;根据观察函数,获取编辑代码对目标组件的数据变更;根据数据和视图渲染的依赖关系、目标组件的数据变更,目标组件的数据变更所对应的部分视图。
可选地,采用预设数据响应转换函数,将开发源组件转换为响应式组件,包括:采用预设数据响应转换函数,在开发源组件创建时将开发源组件转换为响应式组件。
可选地,该方法还包括:获取免安装程序的源状态管理程序;将源状态管理程序转换为与响应式组件匹配的状态管理实例;建立状态管理实例中的元素与响应式组件的可读写关联关系。
可选地,源状态管理程序包括:状态信息,计算属性,变换函数和执行函数;将源状态管理程序转换为与响应式组件匹配的状态管理实例,包括:将状态信息转换为可观察数据、初始化计算属性;将变换函数与状态信息关联,其中,变换函数用于修改状态信息,执行函数用于提交变换函数。
可选地,建立状态管理实例中的元素与响应式组件的可读写关联关系,包括:分别建立状态管理实例中的元素与免安装程序中各所述响应式组件之间的可读写关联关系。
可选地,将源状态管理程序转换为与响应式组件匹配的状态管理实例之前,还包括:判断源状态管理程序中的元素是否存在依赖状态管理实例;若存在,则将所述依赖状态管理实例中的所述状态信息、计算属性、变换函数和执行函数合并到初始源状态管理程序,得到目标状态管理实例;
相应地,将源状态管理程序转换为与响应式组件匹配的状态管理实例,包括:将目标状态管理实例转换为与响应式组件匹配的状态管理实例。
可选地,建立状态管理实例中的元素与响应式组件的可读写关联关系之后,还包括:获取免安装程序中目标组件的编辑代码,其中,编辑代码为目标组件修改后的数据;根据状态管理实例中的元素与响应式组件的可读写关联关系,获取目标组件的状态信息;根据观察函数,获取编辑代码对免安装程序数据的变更;根据数据和视图渲染的依赖关系、目标组件的数据变更、目标组件的状态信息,渲染目标组件的数据变更所对应的部分视图。
另一方面,本申请实施例还提供一种免安装程序转换处理装置,该装置可以包括:获取模块、计算模块及配置模块;
获取模块,用于获取免安装程序的开发源组件,开发源组件包括用于构成免安装程序的数据;计算模块,用于采用预设数据响应转换函数,将开发源组件转换为响应式组件;配置模块,用于根据响应式组件生成数据响应式免安装程序。
可选地,计算模块,具体用于采用预设数据响应转换函数,将开发源组件的数据转换为可观察数据;初始化可观察数据、以及计算属性,并建立数据和视图渲染的依赖关系,依赖关系用于根据数据变化调用视图渲染函数。
可选地,所述装置还包括更新模块,用于获取免安装程序中目标组件的编辑代码,其中,编辑代码为目标组件修改后的数据;根据观察函数,获取编辑代码对所述目标组件的数据变更;根据数据和视图渲染的依赖关系、所述目标组件的数据变更,渲染目标组件的数据变更所对应的部分视图。
可选地,计算模块,具体用于采用预设数据响应转换函数,在开发源组件创建时将开发源组件转换为响应式组件。
可选地,获取模块,还用于获取免安装程序的源状态管理程序;计算模块,还用于将源状态管理程序转换为与响应式组件匹配的状态管理实例;配置模块,还用于建立状态管理实例中的元素与响应式组件的可读写关联关系。
可选地,源状态管理程序包括:状态信息,计算属性,变换函数和执行函数;计算模块,具体用于将状态信息转换为可观察数据、初始化计算属性;将变换函数与状态信息关联,其中,变换函数用于修改所述状态信息,执行函数用于提交所述变换函数。
可选地,配置模块,具体用于分别建立状态管理实例中的元素与免安装程序中各响应式组件之间的可读写关联关系。
可选地,所述装置还包括确定模块,用于判断源状态管理程序中的元素是否存在依赖状态管理实例;若存在,则将依赖状态管理实例中的状态信息、计算属性、变换函数和执行函数合并到初始源状态管理程序,得到目标状态管理实例;相应地,配置模块具体用于将目标状态管理实例转换为与响应式组件匹配的状态管理实例。
可选地,更新模块,还用于获取免安装程序中目标组件的编辑代码,其中,所述编辑代码为所述目标组件修改后的数据;根据所述状态管理实例中的元素与所述响应式组件的可读写关联关系,获取所述目标组件的状态信息;
根据观察函数,获取所述编辑代码对免安装程序数据的变更;根据数据和视图渲染的依赖关系、所述目标组件的数据变更、所述目标组件的状态信息,渲染所述目标组件的数据变更所对应的部分视图。
另一方面,本申请实施例还提供一种电子设备,包括:处理器、存储介质和总线;
存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行时执行如上述一方面提供的免安装程序转换处理方法的步骤。
另一方面,本申请实施例还提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述一方面提供的免安装程序转换处理方法的步骤。
基于上述任一方面,本发明的有益效果是:本申请实施例中,采用预设数据响应转换函数,将开发源组件转换为响应式组件,进而将响应式组件配置为响应式组件,生成数据响应式免安装程序,实现了在需要更新免安装程序的视图时,修改该视图对应的数据即可,进而可以自动更新这部分视图,从而在维持较高视图渲染效率的同时提高用户的开发体验和开发效率。
另外,在一些实施例中,通过采用多实施例和可继承的状态管理实例,使得开发者对免安装程序组件中的数据读写更方便、数据管理更加灵活,便于应对跨团队合作的复杂场景。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种免安装程序转换处理方法流程示意图;
图2示出了本申请实施例所提供的另一种免安装程序转换处理方法流程图;
图3示出了本申请实施例所提供的另一种免安装程序转换处理方法流程示意图;
图4示出了本申请实施例所提供的又一种免安装程序转换处理方法流程图示意图;
图5示出了本申请实施例所提供的另一种免安装程序转换处理方法流程示意图;
图6示出了本申请实施例所提供的另一种免安装程序转换处理方法流程示意图;
图7示出了本申请实施例所提供的另一种免安装程序转换处理方法的流程图;
图8示出了本申请实施例所提供的一种免安装程序转换处理方法中框架结构示意图;
图9示出了本申请实施例提供的免安装程序转换处理装置结构示意图;
图10示出了本申请另一实施例提供的免安装程序转换处理装置结构示意图;
图11示出了本申请另一实施例提供的免安装程序转换处理装置结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了使得本领域技术人员能够使用本申请内容,结合免安装程序转换处理,给出以下实施方式。对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。虽然本申请主要围绕免安装程序进行描述,但是应该理解,这仅是一个示例性实施例。本申请可以应用于任何其他应用程序开发。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
为了更好地理解本申请以下的各实施例,这里对部分名词解释如下:
免安装程序:也可以称为“小程序”,即无需下载安装就可以使用的应用,可以集成于其他应用程序中,例如微信小程序等。
数据观察:可观察数据发生变更时程序能够感知到这次变更并作出响应。
计算属性:由可观察数据转换得到的衍生数据,当可观察数据变更时计算属性能够自动更新。
Store:数据管理模型,用于管理数据状态。
State:储存初始化数据,负责存储整个应用的状态数据,一般需要在使用的时候在根节点注入store对象。在state中可以定义我们所需要管理的数组、对象、字符串等。
getters:对State里面的数据二次处理,当我们需要从store的state中派生出一些状态,那么我们就需要使用getter,getter会接收state作为第一个参数,而且getter的返回值会根据它的依赖被缓存起来,只有getter中的依赖值(state中的某个需要派生状态的值)发生改变的时候才会被重新计算。
mutations:对数据进行计算的方法全部写在里面(类似computed),可以通过提交mutation更改store中state状态。每个mutation都有一个字符串类型的事件类型和一个回调函数,我们需要改变state的值就要在回调函数中改变。
actions:处理Mutations中已经写好的方法,也可以用于改变状态,不过是通过触发mutation实现的,重要的是可以包含异步操作。
API:Application Programming Interface,应用程序编程接口,应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
renderWatcher:用于接管视图更新的观察者,当依赖数据发生的变更时自动更新视图。
depStores:创建store时由开发者指定的依赖store,用于实现多实例store的继承。
图1示出了本申请实施例所提供的一种免安装程序转换处理方法流程示意图。该方法的执行主体可以是转换处理程序所使用的终端、服务器等,在此不作限制。如图1所示,该方法包括:
S101、获取免安装程序的开发源组件。
需要说明的是,一个免安装程序可以是由多个组件构成的,框架为开发者提供了一系列基础组件,开发者可以通过组合这些基础组件进行快速开发。
其中,组件可以是视图层的基本组成单元,可以自带一些功能、预设风格的样式等。组件主要完成免安装程序的视图部分,例如文字、图片显示等。
本申请实施例采用全新的框架进行免安装程序的开发,例如可以命名为mpx框架。开发源组件可以是开发人员基于框架构建并提交的。
本实施例中,开发源组件包括用于构成免安装程序的数据。具体可以包括下述一项或多项:视图容器、基础内容、表单组件、导航、媒体组件、地图组件、画布等。
S102、采用预设数据响应转换函数,将开发源组件转换为响应式组件。
响应式组件是指该组件中的内容发生变化时,可以被感知,并自动进行视图更新。
可选地,本申请实施例中,采用预设数据响应转换函数,将开发源组件转换为响应式组件。转换后,当一个实例被创建时,可以向开发框架的响应式系统中加入其数据对象中能找到的所有的属性,当这些属性的值发生改变时,视图将会产生“响应”,即匹配更新为新的值,当这些数据改变时,视图会进行重渲染。
也就是说,当部分数据发生变化时,相对的视图渲染是局部发生的,针对与该部分数据所对应的视图部分进行渲染,而不需要对全局视图进行渲染,这样,大大提高了视图渲染的效率,使得数据处理速度更快。
S103、根据响应式组件生成数据响应式免安装程序。
基于不同应用程序开发的免安装程序,会有一些不同的配置要求。在转换为响应式组件后,根据预设的目标配置要求,对响应式组件进行处理,以生成目标配置,再将目标配置传递给免安装程序组件的构造函数去执行,从而生成数据响应式免安装程序,也即具有局部视图渲染性能的小程序。
本实施例提供的免安装程序转换处理方法,采用预设数据响应转换函数,将开发源组件转换为响应式组件,进而将响应式组件配置为响应式组件,生成数据响应式免安装程序,实现了在需要更新免安装程序的视图时,修改该视图对应的数据即可,进而可以自动更新这部分视图,从而在维持较高视图渲染效率的同时提高用户的开发体验和开发效率。
图2示出了本申请实施例所提供的另一种免安装程序转换处理方法流程图。如图2所示,本实施例中,采用预设数据响应转换函数,将开发源组件转换为响应式组件,可以包括:
S201、采用预设数据响应转换函数,将开发源组件的数据(date)转换为可观察数据。
其中,可观察数据就是数据的变化能够被感知的数据。预设数据响应转换函数执行后,开发源组件中的数据就会转换为可观察数据。
在一个计算属性里可以完成各种复杂的逻辑,包括运算、函数调用等,只要最终返回一个结果就可以。一个计算属性可以依赖其他计算属性,另外,一个计算属性可以依赖一个实例、或者依赖多个实例。
举例说明,假设声明了一个计算属性reversedMessage,则输入的函数将用作属性vm.reversedMessage的getter函数,如果对输入的vm.message的值进行修改,vm.reversedMessage的值始终取决于vm.message的值。例如输入的vm.message为“hello”,则vm.reversedMessage为“olleh”,假设更改vm.message为“hello”为“hallo”,则相应的vm.reversedMessage为“ollah”。
当根据本申请采用的开发框架在组件中绑定计算属性后,开发框架将知道vm.reversedMessage依赖于vm.message,因此当vm.message发生改变时,所有依赖vm.message的绑定也会更新。从而实现了数据的实时响应,使得免安装程序的测试和开发更加便利。
S202、初始化可观察数据、以及计算属性,并建立数据和视图渲染的依赖关系。
其中,依赖关系用于根据数据变化调用视图渲染函数。
可选地,根据watch函数进行数据观察的初始化。
根据视图数据依赖建立数据和视图渲染的依赖关系,构建renderWatcher。renderWatcher是用于接管视图更新的观察者,当依赖数据发生变更时自动更新视图。例如,在数据发生变更时,自动调用视图渲染函数(this.setData)渲染并更新所变更数据对应的视图,大大提升了视图更新效率。其中,(this.setData)是免安装程序中更新视图的API。
需要说明的是,对于所谓的依赖关系,即:A通过B可以了解数据的变化,没有B,A不知道数据发生了变化,当有数据变化发生时,B会通知A。B相当于是杂志社,A作为订阅者,首先需要向杂志社订阅杂志,这样当有新的杂志(消息)产生时,B会通知A,所以A强烈依赖B,他们之间就是所谓的依赖关系。
本实施例中,建立组件中数据与其相对应视图渲染的依赖关系,以便于在组件中数据发生变化时,依靠这个依赖关系,方便的调用相对应的视图渲染函数,对需要进行渲染的视图部分进行渲染,以提高视图渲染的效率。
图3示出了本申请实施例所提供的另一种免安装程序转换处理方法流程示意图。
由上述实施例可知,本申请采用全新的框架对数据响应式免安装程序进行转换处理,那么基于这种数据响应式免安装程序很容易进行修改,程序员在操作界面进行数据修改,就可以实现对应视图的渲染更新。
如图3所示,根据响应式组件生成数据响应式免安装程序之后,还包括:
S301、获取免安装程序中目标组件的编辑代码,其中,编辑代码为目标组件修改后的数据。
需要说明的是,编辑代码可以是对代码进行重新编辑或修改,也即对各组件实例中的数据进行了改动,当需要对免安装程序组件中的数据进行改动时,程序员可以在免安装程序的编辑界面直接修改,输入修改的内容。
S302、根据观察函数,获取编辑代码对目标组件的数据的变更。
S303、根据数据和视图渲染的依赖关系、目标组件的数据变更,渲染目标组件的数据变更所对应的部分视图。
具体地,观察(watch)函数将实时观察到组件中数据的变化,从而根据依赖关系做出响应。
观察函数观察到数据变化时,根据步骤S202中建立好的数据与视图渲染间的依赖关系、免安装程序数据的变更确定修改的内容,进而就可以调用视图渲染函数(this.setData)渲染并更新,即对与发生变更的数据存在依赖关系的视图进行渲染,从而完成了一次视图变更。
可选地,采用预设数据响应转换函数,将开发源组件转换为响应式组件,包括:采用预设数据响应转换函数,在开发源组件创建时将开发源组件转换为响应式组件。
需要说明的是,每个组件在被创建时都要经过一系列的初始化过程,例如,需要设置数据监听、编译模板等,同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。而这些生命周期钩子函数,会在创建组件生命周期的不同阶段被调用,如:destroyed函数、updated函数等等。
可选地,本实施例中,数据响应转换函数作为免安装程序组件的生命周期钩子在每个组件创建时执行,将其转换为响应式组件。
图4示出了本申请实施例所提供的又一种免安装程序转换处理方法流程图示意图,上述实施例中开发了免安装程序,为了更好地将上述转换处理方法应用于其他免安装程序开发、以及更好地应对跨团队合作的复杂场景,还可以建立免安装程序的数据状态管理。
如图4所示,本申请提供的方法还可以包括:
S401、获取免安装程序的源状态管理程序。
可以是开发者基于开发框架输入的源状态管理程序,以开发免安装程序的数据状态管理store。
S402、将源状态管理程序转换为与响应式组件匹配的状态管理实例。
本申请开发的免安装程序是数据响应式免安装程序,那么相应地需要建立数据响应式免安装程序的数据状态管理store。因而将源状态管理程序转换为与响应式组件匹配的状态管理实例。
S403、建立状态管理实例中的元素与响应式组件的可读写关联关系。
建立数据状态管理store的主要目的是可以便于开发者读写免安装程序某个组件的状态,需要建立状态管理实例中的元素与响应式组件的可读写关联关系,进而程序员可以根据关联关系读写免安装程序某个组件的状态。
需要说明的是,数据状态管理是管理免安装程序所有组件的状态,建立了数据状态管理后可以读取任意组件的状态。
由于各组件都需要与状态管理实例进行关联,可选地,建立状态管理实例中的元素与响应式组件的可读写关联关系,包括:分别建立状态管理实例中的元素与免安装程序中各响应式组件之间的可读写关联关系。
举例说明,本申请实施例中的状态可以指:视图中某个触控件是否开启。例如:视图中的任何可变区域都可以用状态定义,例如一个输入框中的文本,一个勾选按钮是否被选中,一个可选列表中当前处于激活状态的列表元素索引等,这样当我们需要变更视图时就只需修改对应的状态即可。
具体地,建立状态管理实例中的元素与响应式组件的可读写关联关系,可以是将状态管理实例中的元素注入到各响应式组件的配置中,以方便调用其对免安装程序中的数据进行高效灵活管理。例如,可以采用mapStore的方法将状态管理实例中的元素注入到各响应式组件的配置中,也就是通过mapStore的方法建立状态管理实例中的元素与响应式组件的可读写关联关系。
需要说明的是,store的存在意义主要是便于全局数据的统一管理,例如页面当中存在A,B,C三个组件,这三个组件都会根据用户是否登录渲染出不同的视图,这个时候我们可以将用户是否登录这个状态保存在store中,通过mapStore的方式将这个状态映射到A,B,C三个组件的计算属性当中,这样A,B,C这三个组件都可以根据这个计算属性获取用户当前是否登录来渲染对应的视图,并在store中登录状态发生改变时自动更新视图,而不需要在A,B,C三个组件内部各自建立数据来管理用户登录状态。
可选地,源状态管理程序包括:状态信息(state),计算属性(getters),变换函数(mutations)和执行函数(actions)。
相应地,与所述响应式组件匹配的状态管理实例中包括下述元素:state,getters,mutations和actions。
需要说明的是,状态信息state可以为单一状态树,负责存储整个应用的状态数据,在state中需要定义我们所需要管理的数组、对象、字符串等,这样在免安装程序的组件中可以获取所定义的这个对象的状态。
当我们需要从store的state中派生出一些状态,那么我们就需要使用getter,getter会接收state作为第一个参数,而且getter的返回值会根据它的依赖被缓存起来,只有getter中的依赖值(state中的某个需要派生状态的值)发生改变的时候才会被重新计算。
另外,可以通过提交mutation更改store中state状态。每个mutation都有一个字符串类型的事件类型和一个回调函数,我们需要改变state的值就要在回调函数中改变。
执行action函数可以提交mutation,具体可以在action中可以执行store.commit提交mutation,action中可以有任何的异步操作。
图5示出了本申请实施例所提供的另一种免安装程序转换处理方法流程示意图。如图5所示,上述将源状态管理程序转换为与响应式组件匹配的状态管理实例,可以包括:
S501、将状态信息(state)转换为可观察数据、初始化计算属性。
S502、将变换函数(mutations)与状态信息关联,其中,变换函数用于修改状态信息,执行函数用于提交变换函数。
可选地,将源状态管理程序中的mutations进行参数绑定和转换,使开发者需要在mutations中修改state。
可选地,还可以将执行函数(actions)进行参数绑定。
进一步地,可以将上述转换后的结果挂载到store实例上并返回。
可选地,建立状态管理实例中的元素与响应式组件的可读写关联关系,包括:分别建立状态管理实例中的元素与免安装程序中各响应式组件之间的可读写关联关系。
图6示出了本申请实施例所提供的另一种免安装程序转换处理方法流程示意图,如图6所示,在一些实施例中,将源状态管理程序转换为与响应式组件匹配的状态管理实例之前,还包括:
S601、判断源状态管理程序中的元素是否存在依赖(depStores)状态管理实例。
S602、若存在,则将依赖状态管理实例中的状态信息、计算属性、变换函数和执行函数合并到初始源状态管理程序,得到目标状态管理实例。
需要说明的是,这里的初始源状态管理程序即store配置中的顶层配置,也即开发者接收到的最原始的状态管理程序。具体实现时,如果源状态管理程序中的元素存在依赖状态depStores,就遍历每个源状态管理程序中的元素,确实源状态管理程序之间是否存在依赖关系。如果存在,将存在依赖状态的元素合并到顶层store配置中,得到目标状态管理实例。
进而如图5所示的流程,基于目标状态管理实例执行。
即上述将所述源状态管理程序转换为与所述响应式组件匹配的状态管理实例,包括:
将目标状态管理实例转换为与响应式组件匹配的状态管理实例。
也即是,将目标状态管理实例中的state转换为可观察数据、将目标状态管理实例中的计算(getters)转换为计算属性、将目标状态管理实例中的mutations进行参数绑定和转换、将目标状态管理实例中的actions进行参数绑定,进而将上述转换后的结果挂载到store实例上并返回。
图7示出了本申请实施例所提供的另一种免安装程序转换处理方法的流程图。上述状态管理实例构建完毕后,即建立了数据状态管理store,那么后续开发者就可以很方便的读取某个组件的状态,也可以实现跨团队操作。
如图7所示,将状态管理实例中的元素写入响应式组件中对应的配置信息中之后,还可以包括:
S701、获取免安装程序中目标组件的编辑代码,其中,编辑代码为目标组件修改后的数据。
S702、根据状态管理实例中的元素与响应式组件的可读写关联关系,获取目标组件的状态信息。
S703、根据观察函数,获取编辑代码对免安装程序数据的变更。
S704、根据数据和视图渲染的依赖关系、目标组件的数据变更、目标组件的状态信息,渲染目标组件的数据变更所对应的部分视图。
需要说明的是,此处与步骤S301、S302、S303相对应,但是引入了目标组件的状态,其他过程类似,此处不再累赘。
图8示出了本申请实施例所提供的一种免安装程序转换处理方法中框架结构示意图。本申请提供的方法基于一种新的框架,这个框架可以基于如图8所示的数据响应模块,包括:免安装程序创建(createReactive)和状态管理实例创建(createStore)两个大模块。
其中,免安装程序创建包括:可观察数据(observable)、计算属性转换(transformComputed)、观察函数转换(transformWatch)、观察者转换(renderWatcher)、抽离复用(mergeMixins)。
需要说明的是,Mixins其实是一种抽离复用的机制,比如一个mixin当中定义了一个组件方法doSomething,那所有配置了这个mixin的组件当中都会存在这个组件方法doSomething,我们进行数据响应式转换的步骤其实也是基于这个机制,即我们创建了一个reactiveMixin,该mixin中定义了组件创建时执行的钩子函数create,在create函数中执行了数据响应式转换的操作,将这个mixin注册到每个使用该框架生成的免安装程序组件中,这样就能确保上述框架生成的每个免安装程序组件在创建时都会执行这个数据响应式转换的操作。
状态管理实例创建包括:状态信息、计算属性、变换函数、执行函数、依赖状态。
通过转换后的响应式组件,可以自动调用视图渲染函数(this.setData)渲染并更新所变更数据对应的视图,从而实现生成数据响应式免安装程序。
图9示出了本申请实施例提供的免安装程序转换处理装置结构示意图,如图9所示,该装置包括:获取模块801、计算模块802及配置模块803。其中:
获取模块801,用于获取免安装程序的开发源组件,开发源组件包括用于构成免安装程序的数据。计算模块802,用于采用预设数据响应转换函数,将开发源组件转换为响应式组件。配置模块803,用于根据响应式组件生成数据响应式免安装程序。
可选地,计算模块802,具体用于采用预设数据响应转换函数,将开发源组件的数据转换为可观察数据;初始化可观察数、以及计算属性,并建立数据和视图渲染的依赖关系,依赖关系用于根据数据变化调用视图渲染函数。
图10示出了本申请另一实施例提供的免安装程序转换处理装置结构示意图,如图10所示,还包括更新模块804,具体用于获取免安装程序中目标组件的编辑代码,其中,编辑代码为目标组件修改后的数据;根据观察函数,获取编辑代码对目标组件的数据变更;根据数据和视图渲染的依赖关系、目标组件的数据变更,渲染目标组件的数据变更所对应的部分视图。
在一些实施例中,计算模块802,具体用于采用预设数据响应转换函数,在开发源组件创建时将开发源组件转换为响应式组件。
在一些实施例中,配置模块803,还用于获取免安装程序的源状态管理程序;计算模块802,还用于将源状态管理程序转换为与响应式组件匹配的状态管理实例;建立状态管理实例中的元素与响应式组件的可读写关联关系。
在一些实施例中,源状态管理程序包括:状态信息,计算属性,变换函数和执行函数;计算模块802,具体用于将状态信息转换为可观察数据、初始化计算属性;将变换函数与状态信息关联,其中,变换函数用于修改状态信息,执行函数用于提交变换函数。
在一些实施例中,配置模块803,具体用于分别建立状态管理实例中的元素与免安装程序中各响应式组件之间的可读写关联关系。
在一些实施例中,还包括确定模块805,用于判断源状态管理程序中的元素是否存在依赖状态管理实例;若存在,则将依赖状态管理实例中的状态信息、计算属性、变换函数和执行函数合并到初始源状态管理程序,得到目标状态管理实例。
相应地,配置模块803具体用于将目标状态管理实例转换为与响应式组件匹配的状态管理实例。
可选地,参照图10,在一些实施例中,更新模块804,还用于获取免安装程序中目标组件的编辑代码,其中,编辑代码为目标组件修改后的数据;根据状态管理实例中的元素与响应式组件的可读写关联关系,获取目标组件的状态信息;根据观察函数,获取编辑代码对免安装程序数据的变更;根据数据和视图渲染的依赖关系、目标组件的数据变更、目标组件的状态信息,渲染目标组件的数据变更所对应的部分视图。
图11示出了本申请另一实施例提供的免安装程序转换处理装置结构示意图,如图11所示,本申请还提供一种电子设备200,该电子设备200包括:处理器220、存储介质240和通信总线230,存储介质240存储有处理器220可执行的机器可读指令,当电子设备运行时,处理器220与存储介质240之间通过通信总线230通信,处理器220执行机器可读指令,以执行时执行上述的免安装程序转换处理方法的步骤。
电子设备200可以是通用计算机或特殊用途的计算机,两者都可以用于实现本申请的免安装程序转换处理方法。本申请尽管仅示出了一个计算机,但是为了方便起见,可以在多个类似平台上以分布式方式实现本申请描述的功能,以均衡处理负载。
例如,电子设备200可以包括用于执行程序指令的一个或多个处理器220、通信总线230、和不同形式的存储介质240,例如,磁盘、ROM、或RAM,或其任意组合。示例性地,计算机平台还可以包括存储在ROM、RAM、或其他类型的非暂时性存储介质、或其任意组合中的程序指令。根据这些程序指令可以实现本申请的方法。
为了便于说明,在电子设备200中仅描述了一个处理器。然而,应当注意,本申请中的电子设备200还可以包括多个处理器,因此本申请中描述的一个处理器执行的步骤也可以由多个处理器联合执行或单独执行。
本申请还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的免安装程序转换处理方法的步骤。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (20)

1.一种免安装程序转换处理方法,其特征在于,包括:
获取免安装程序的开发源组件,所述开发源组件包括用于构成免安装程序的数据;
采用预设数据响应转换函数,将所述开发源组件转换为响应式组件;
根据所述响应式组件生成数据响应式免安装程序。
2.根据权利要求1所述的方法,其特征在于,所述采用预设数据响应转换函数,将所述开发源组件转换为响应式组件,包括:
采用预设数据响应转换函数,将开发源组件的数据转换为可观察数据;
初始化所述可观察数据、以及计算属性,并建立数据和视图渲染的依赖关系,所述依赖关系用于根据数据变化调用视图渲染函数。
3.根据权利要求1所述的方法,其特征在于,所述根据所述响应式组件生成数据响应式免安装程序之后,还包括:
获取免安装程序中目标组件的编辑代码,其中,所述编辑代码为所述目标组件修改后的数据;
根据观察函数,获取所述编辑代码对所述目标组件的数据变更;
根据数据和视图渲染的依赖关系、所述目标组件的数据变更,渲染所述目标组件的数据变更所对应的部分视图。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述采用预设数据响应转换函数,将所述开发源组件转换为响应式组件,包括:
采用所述预设数据响应转换函数,在所述开发源组件创建时将所述开发源组件转换为响应式组件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述免安装程序的源状态管理程序;
将所述源状态管理程序转换为与所述响应式组件匹配的状态管理实例;
建立所述状态管理实例中的元素与所述响应式组件的可读写关联关系。
6.根据权利要求5所述的方法,其特征在于,所述源状态管理程序包括:状态信息,计算属性,变换函数和执行函数;
所述将所述源状态管理程序转换为与所述响应式组件匹配的状态管理实例,包括:
将所述状态信息转换为可观察数据、初始化计算属性;
将变换函数与状态信息关联,其中,所述变换函数用于修改所述状态信息,所述执行函数用于提交所述变换函数。
7.根据权利要求6所述的方法,其特征在于,所述建立所述状态管理实例中的元素与所述响应式组件的可读写关联关系,包括:
分别建立所述状态管理实例中的元素与所述免安装程序中各所述响应式组件之间的可读写关联关系。
8.根据权利要求5所述的方法,其特征在于,所述将所述源状态管理程序转换为与所述响应式组件匹配的状态管理实例之前,还包括:
判断所述源状态管理程序中的元素是否存在依赖状态管理实例;
若存在,则将所述依赖状态管理实例中的所述状态信息、计算属性、变换函数和执行函数合并到初始源状态管理程序,得到目标状态管理实例;
相应地,所述将所述源状态管理程序转换为与所述响应式组件匹配的状态管理实例,包括:
将所述目标状态管理实例转换为与所述响应式组件匹配的状态管理实例。
9.根据权利要求5-8任一项所述的方法,其特征在于,所述建立所述状态管理实例中的元素与所述响应式组件的可读写关联关系之后,还包括:
获取免安装程序中目标组件的编辑代码,其中,所述编辑代码为所述目标组件修改后的数据;
根据所述状态管理实例中的元素与所述响应式组件的可读写关联关系,获取所述目标组件的状态信息;
根据观察函数,获取所述编辑代码对免安装程序数据的变更;
根据数据和视图渲染的依赖关系、所述目标组件的数据变更、所述目标组件的状态信息,渲染所述目标组件的数据变更所对应的部分视图。
10.一种免安装程序转换处理装置,其特征在于,包括:获取模块、计算模块及配置模块;
所述获取模块,用于获取免安装程序的开发源组件,所述开发源组件包括用于构成免安装程序的数据;
所述计算模块,用于采用预设数据响应转换函数,将所述开发源组件转换为响应式组件;
所述配置模块,用于根据所述响应式组件生成数据响应式免安装程序。
11.根据权利要求10所述的装置,其特征在于,所述计算模块,具体用于采用预设数据响应转换函数,将开发源组件的数据转换为可观察数据;初始化所述可观察数据、以及计算属性,并建立数据和视图渲染的依赖关系,所述依赖关系用于根据数据变化调用视图渲染函数。
12.根据权利要求10所述的装置,其特征在于,还包括:更新模块;
所述更新模块,用于获取免安装程序中目标组件的编辑代码,其中,所述编辑代码为所述目标组件修改后的数据;根据观察函数,获取所述编辑代码对所述目标组件的数据变更;根据数据和视图渲染的依赖关系、所述目标组件的数据变更,渲染所述目标组件的数据变更所对应的部分视图。
13.根据权利要求10-12任一项所述的装置,其特征在于,所述计算模块,具体用于采用所述预设数据响应转换函数,在所述开发源组件创建时将所述开发源组件转换为响应式组件。
14.根据权利要求10所述的装置,其特征在于,所述获取模块,还用于获取所述免安装程序的源状态管理程序;
所述计算模块,还用于将所述源状态管理程序转换为与所述响应式组件匹配的状态管理实例;
所述配置模块,还用于建立所述状态管理实例中的元素与所述响应式组件的可读写关联关系。
15.根据权利要求14所述的装置,其特征在于,所述源状态管理程序包括:状态信息,计算属性,变换函数和执行函数;
所述计算模块,具体用于将所述状态信息转换为可观察数据、初始化计算属性;将变换函数与状态信息关联,其中,所述变换函数用于修改所述状态信息,所述执行函数用于提交所述变换函数。
16.根据权利要求15所述的装置,其特征在于,所述配置模块,具体用于分别建立所述状态管理实例中的元素与所述免安装程序中各所述响应式组件之间的可读写关联关系。
17.根据权利要求14所述的装置,其特征在于,还包括:确定模块;
所述确定模块,用于判断所述源状态管理程序中的元素是否存在依赖状态管理实例;若存在,则将所述依赖状态管理实例中的所述状态信息、计算属性、变换函数和执行函数合并到初始源状态管理程序,得到目标状态管理实例;
相应地,所述配置模块,具体用于将所述目标状态管理实例转换为与所述响应式组件匹配的状态管理实例。
18.根据权利要求14-17任一项所述的装置,其特征在于,还包括:更新模块;
所述更新模块,用于获取免安装程序中目标组件的编辑代码,其中,所述编辑代码为所述目标组件修改后的数据;根据所述状态管理实例中的元素与所述响应式组件的可读写关联关系,获取所述目标组件的状态信息;根据观察函数,获取所述编辑代码对免安装程序数据的变更;根据数据和视图渲染的依赖关系、所述目标组件的数据变更、所述目标组件的状态信息,渲染所述目标组件的数据变更所对应的部分视图。
19.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如权利要求1-9任一项所述的免安装程序转换处理方法的步骤。
20.一种存储介质,其特征在于,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1-9任一项所述的免安装程序转换处理方法的步骤。
CN201811330369.3A 2018-11-09 2018-11-09 免安装程序转换处理方法、装置、电子设备及存储介质 Active CN111176648B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811330369.3A CN111176648B (zh) 2018-11-09 2018-11-09 免安装程序转换处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811330369.3A CN111176648B (zh) 2018-11-09 2018-11-09 免安装程序转换处理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111176648A true CN111176648A (zh) 2020-05-19
CN111176648B CN111176648B (zh) 2024-01-05

Family

ID=70655287

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811330369.3A Active CN111176648B (zh) 2018-11-09 2018-11-09 免安装程序转换处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111176648B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090216624A1 (en) * 2008-02-25 2009-08-27 Kiyoshi Kato Operations management apparatus, operations management system, data processing method, and operations management program
CN104239432A (zh) * 2014-08-27 2014-12-24 百度在线网络技术(北京)有限公司 一种识别响应式页面的方法与装置
CN104267941A (zh) * 2014-09-18 2015-01-07 用友优普信息技术有限公司 动态生成响应式网页的方法及装置
CN104978317A (zh) * 2014-04-02 2015-10-14 腾讯科技(北京)有限公司 网页生成方法及装置、网站生成方法及建站服务器
WO2016032267A1 (ko) * 2014-08-27 2016-03-03 주식회사 나인트리 도큐먼트를 반응형 웹으로 변환하는 반응형 웹 생성 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090216624A1 (en) * 2008-02-25 2009-08-27 Kiyoshi Kato Operations management apparatus, operations management system, data processing method, and operations management program
CN104978317A (zh) * 2014-04-02 2015-10-14 腾讯科技(北京)有限公司 网页生成方法及装置、网站生成方法及建站服务器
CN104239432A (zh) * 2014-08-27 2014-12-24 百度在线网络技术(北京)有限公司 一种识别响应式页面的方法与装置
WO2016032267A1 (ko) * 2014-08-27 2016-03-03 주식회사 나인트리 도큐먼트를 반응형 웹으로 변환하는 반응형 웹 생성 방법
CN104267941A (zh) * 2014-09-18 2015-01-07 用友优普信息技术有限公司 动态生成响应式网页的方法及装置

Also Published As

Publication number Publication date
CN111176648B (zh) 2024-01-05

Similar Documents

Publication Publication Date Title
CN110083455B (zh) 图计算处理方法、装置、介质及电子设备
CN110968305A (zh) 小程序可视化生成方法、装置、设备及存储介质
CN112765023A (zh) 测试用例生成方法、装置
CN110781067A (zh) 一种启动耗时的计算方法、装置、设备和存储介质
CN112965794A (zh) 算法调用方法、电子设备及存储介质
CN110727429A (zh) 一种前端页面的生成方法、装置及设备
CN112235132A (zh) 动态配置服务的方法、装置、介质以及服务器
CN111159301A (zh) 一种基于智能合约的数据创建方法、装置、设备及存储介质
CN112418447B (zh) 提供机器学习服务的系统、方法、介质和设备
CN110851123A (zh) 基于SpringMVC的WebGIS电网可视化框架的构建方法、系统及装置
CN114461223A (zh) 一种代码生成方法、装置及终端设备
CN111580804B (zh) 一种软件项目开发的方法和装置
CN117234582A (zh) 一种项目代码处理方法、装置、电子设备及存储介质
US8146109B2 (en) Version resiliency for a host application and custom code
CN113778564B (zh) 一种高效执行evm智能合约的方法、设备及储存介质
CN111176648A (zh) 免安装程序转换处理方法、装置、电子设备及存储介质
CN112764729B (zh) 应用软件开发方法、装置、计算机设备及可读存储介质
US11640281B2 (en) Tool for introspection in object-oriented source code
CN111124386B (zh) 基于Unity的动画事件处理方法、装置、设备和存储介质
CN112306844B (zh) 软件开发系统的接口测试方法、装置、设备及存储介质
CN111880775A (zh) 多模块分层架构实现方法、装置、电子设备、存储介质
CN113590225A (zh) 贴图检测方法、装置、电子设备及存储介质
CN114254232A (zh) 云产品页面生成方法、装置、计算机设备和存储介质
US8135943B1 (en) Method, apparatus, and computer-readable medium for generating a dispatching function
CN111198899A (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
TG01 Patent term adjustment
TG01 Patent term adjustment