CN114416090A - 一种单页面应用框架Vue组件的转换方法及装置 - Google Patents
一种单页面应用框架Vue组件的转换方法及装置 Download PDFInfo
- Publication number
- CN114416090A CN114416090A CN202210025856.9A CN202210025856A CN114416090A CN 114416090 A CN114416090 A CN 114416090A CN 202210025856 A CN202210025856 A CN 202210025856A CN 114416090 A CN114416090 A CN 114416090A
- Authority
- CN
- China
- Prior art keywords
- target
- vue
- vue component
- variable
- component
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 124
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 69
- 230000006870 function Effects 0.000 claims description 71
- 230000004048 modification Effects 0.000 claims description 23
- 238000012986 modification Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 18
- 230000008676 import Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003319 supportive effect Effects 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation 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
本申请公开了一种单页面应用框架Vue组件的转换方法及装置,其中方法包括:获取待转换的第一Vue组件;获取所述第一Vue组件中的各目标对象;为所述第一Vue组件添加目标方法;基于所述目标方法对各所述目标对象对应的目标变量进行定义,获得各定义语句,以将所述第一Vue组件转换为第二Vue组件,其中所述第一Vue组件的版本低于所述第二Vue组件的版本。本申请中的方法,能够快速实现了将低版本的Vue组件转换成高版本的Vue组件,提高了转换效率,并且保证了转换的准确率。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种单页面应用框架Vue组件的转换方法及装置。
背景技术
Vue是一套用于构建用户界面的渐进式JavaScript框架,也可以称为单页面应用框架,通过编写Vue组件,能够为复杂的单页面应用提供驱动。在2.0版本的Vue2组件中,是将各功能逻辑的代码存放在同一个Vue组件中。然而对于中大型项目来说,由于业务逻辑比较复杂,会编写多个功能的逻辑,当把多个功能逻辑的代码放在同一个Vue组件中时,随着项目代码的不断迭代,会造成代码结构混乱,变量定义分布凌乱,索引变量困难,导致后期维护和更新成本非常高。由此单页面应用框架Vue推出了最新的3.0版本,其中就涉及了一个最为重要的高级语法特性:组合式API。组合式API能够解决目前Vue2组件存在的、代码结构混乱、变量定义分布凌乱、索引变量困难的问题。因此对于大型项目,就需要将已有的Vue2组件转换成3.0版本的Vue3组件。
但是现有的转换方法都是由人工来进行操作的,因此就需要开发人员熟练掌握Vue3.0组合式API的语法,并且需要重新梳理当前代码的业务逻辑,还需要开发人员重新对语法进行改造,并重新进行测试,因此转换效率较低。
发明内容
有鉴于此,本发明提供了一种单页面应用框架Vue组件的转换方法、装置以及存储介质,主要目的在于解决目前存在的在将低版本的Vue组件转换成高版本的Vue组件时转换效率低的问题。
为解决上述问题,本申请提供一种单页面应用框架Vue组件的转换方法,包括:
获取待转换的第一Vue组件;
获取所述第一Vue组件中的各目标对象;
为所述第一Vue组件添加目标方法;
基于所述目标方法对各所述目标对象对应的目标变量进行定义,获得各定义语句,以将所述第一Vue组件转换为第二Vue组件,其中所述第一Vue组件的版本低于所述第二Vue组件的版本。
可选的,所述获取第一Vue组件中的各目标对象,具体包括:
基于对象关键字从所述第一Vue组件中获取各目标对象;
所述对象关键字包括如下任意一种或几种:data和state。
可选的,所述为所述第一Vue组件添加目标方法,具体包括:
基于预定的语法将目标方法添加至目标标签对应的代码块中;
所述目标方法包括如下任意一种或几种:ref、reactive、toRef、toRefs。
可选的,在所述基于所述目标方法对各目标对象对应的目标变量进行定义之前,所述方法还包括:从所述目标对象中的各变量中确定出各所述目标变量;
所述从所述目标对象的各变量中确定出各所述目标变量,具体包括:
获取所述目标对象中各变量的key值;
基于各所述变量的key值判断各所述变量的类型,在确定所述变量的类型为响应式类型的情况下,确定所述变量为目标变量。
可选的,所述基于所述目标方法对各目标对象对应的目标变量进行定义,具体包括:
获取所述目标变量的初始值;
确定所述初始值的数据类型;
采用与所述数据类型对应的目标方法对所述目标变量进行定义;
其中,所述数据类型包括如下任意一种:数字类型、字符串类型和数组类型。
可选的,所述方法还包括:
根据生命周期函数关键字与转换方式之间的映射关系,确定第一Vue组件中原始生命周期函数所对应的目标转换方式;
基于所述目标转换方式将所述第一Vue组件中的原始生命周期函数转换为目标生命周期函数。
可选的,所述方法还包括:
基于变量修改语句关键字从所述第一Vue组件中获取原始变量修改语句;
将所述原始变量修改语句转换为目标变量修改语句。
为解决上述技术问题,本申请提供一种单页面应用框架Vue组件的转换装置,包括:
第一获取模块,用于获取待转换的第一Vue组件;
第二获取模块,用于获取第一Vue组件中的各目标对象;
添加模块,用于为所述第一Vue组件添加目标方法;
转换模块,用于基于所述目标方法对各所述目标对象对应的目标变量进行定义,获得各定义语句,以将所述第一Vue组件转换为第二Vue组件;其中,所述第一Vue组件的版本低于所述第二Vue组件的版本。
为解决上述技术问题,本申请提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述单页面应用框架Vue组件的转换方法的步骤。
为解决上述技术问题,本申请提供一种电子设备,至少包括存储器、处理器,所述存储器上存储有计算机程序,所述处理器在执行所述存储器上的计算机程序时实现上述任一项所述单页面应用框架Vue组件的转换方法的步骤。
本申请中的方法,通过获取第一Vue组件中的目标对象,并对第一Vue组件添加目标方法,然后利用目标方法对目标对象中的变量进行重新定义,由此能够获得转换后的各定义语句,从而获得转换后的第二Vue组件,实现了将低版本的Vue组件转换成高版本的Vue组件,提高了转换效率,并且保证了转换的准确率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请实施例一种Vue组件转换方法的流程图;
图2为本申请又一实施例一种Vue组件转换方法的方法流程图;
图3为本申请又一实施例一种Vue组件转换装置的结构框图;
图4为本申请另一实施例一种电子设备的结构框图。
具体实施方式
此处参考附图描述本申请的各种方案以及特征。
应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。
本申请实施例提供一种单页面应用框架Vue组件的转换方法,具体可以应用于将第一Vue组件转换成第二Vue组件,即将Vue2组件转换成Vue3组件的过程中,如图1所示,本实施例中的方法包括如下步骤:
步骤S101,获取待转换的第一Vue组件;
本步骤在具体实施过程中,具体可以基于预先配置的目标地址,根据目标地址来获取待转换的第一Vue组件,其中第一Vue组件具体可以是版本为2.0的Vue2组件。或者步骤中还可以基于预设的文件关键字查找项目根目录下的各文件名称/组件名称,以获取所述待转换的Vue2组件。例如根据“.vue”关键字检索项目根目录下,所有以“.vue”结尾的文件名称/组件名称,以此来获得待转换的第一Vue组件,即获得待转换Vue2组件。
本步骤在具体实施过程中,在获取待转换的Vue2组件之前,还可以先确定当前Vue框架的版本是否达到预设版本的要求,在符合预设版本要求的情况下,再获取待转换的Vue2组件,为后续顺利的对Vue2组件进行转换奠定了基础。
步骤S102,获取第一Vue组件中的各目标对象;
本步骤在具体实施过程中,具体可以根据对象关键字来从第一Vue组件/Vue2组件中查找获得目标对象,例如对象关键字可以为“data”和“state”,即根据“data”关键字确定出data对象,或者根据“state”来获得state对象,以此来获得目标对象。
步骤S103,为所述第一Vue组件添加目标方法;
本步骤在具体实施过程中,由于3.0版本的Vue3组件中的组合式API需要用到ref、reactive、toRef、toRefs方法,以支持将变量转换为响应式变量,由此需要将上述这些目标方法添加至待转换的第一Vue组件/Vue2组件中。在添加目标方法时,具体可以利用“import”将目标方法添加至待转换的Vue2组件中。
步骤S104,基于所述目标方法对各所述目标对象对应的目标变量进行定义,获得各定义语句,以将所述第一Vue组件转换为第二Vue组件,其中第一Vue组件的版本低于所述第二Vue组件的版本。
本步骤中第二Vue组件具体可以是版本为3.0的Vue3组件。在对待转换的Vue2组件添加了目标方法后,就可以利用添加的目标方法对目标对象中的目标变量进行重新定义,其中目标变量是指变量类型为响应式类型的变量。因为在Vue3组件中,组合式API抛弃了原有的Vue2组件中data对象定义的方式,采用哪里使用,就哪里定义和变更的原则,使得单个功能的代码逻辑得以聚合在一起,更利于阅读和维护,由此需要对待转换的Vue2组件中的变量重新进行定义。
本实施例中的方法,本实施例中的方法,通过获取第一Vue组件中的目标对象,并对第一Vue组件添加目标方法,然后利用目标方法对目标对象中的变量进行重新定义,由此能够获得转换后的各定义语句,从而获得转换后的第二Vue组件,实现了将低版本的Vue2组件转换成高版本的Vue3组件,提高了转换效率,并且保证了转换的准确率。
在上述实施例的基础上,本申请又一实施例提供一种单页面应用框架Vue组件的转换方法,如图2所示,包括如下步骤:
步骤S201,判断Vue框架的版本是否满足预设条件,在所述Vue框架的版本满足预设条件的情况下,获取待转换的第一Vue组件;
本步骤中,所述预设条件可以为预定的版本阈值。由于是需要将第一Vue转换成第二Vue组件,即将Vue2组件转换成Vue3组件,因此Vue框架的版本需要满足Vue3版本的需求,即Vue框架的版本要高于或等于Vue3.0版本。
在具体实施过程中,在对Vue框架的版本进行判断时,具体可以通过查找项目中的package.json文件,以搜索dependencies对象中的vue键值,根据搜索获得的vue键值与预定的版本阈值来确定Vue框架的版本是否满足条件,即当搜索的vue键值高于或等于预定的版本阈值Vue3.0的情况下,说明其满足预设条件,可以进行Vue组件的转换;当搜索的vue键值高于或等于预定的版本阈值Vue3.0的情况下,说明其不满足预设条件,不可以进行Vue组件的转换。在具体实施过程中,例如搜索获得的键值为3.0.4,则可以取第一位数字,然后根据第一为数字与预定阈值进行比较,如第一位数字大于或等于3,则判断项目中vue框架的版本是可以支持的。如果当前项目vue版本低于3,由于vue3版本是可以完全支持vue2老语法代码的,所以插件执行命令,npm install vue3-D,将项目中的vue版本升级到vue3的版本。
步骤S202,基于对象关键字从所述第一Vue组件中获取各目标对象;
本步骤在具体实施过程中,对象关键字可以为“data”和“state”,即根据“data”关键字来从Vue组件中获取到data对象,或者根据“state”来获得state对象,以此来获得目标对象。
步骤S203,基于预定的语法将目标方法添加至script标签对应的代码块中;所述目标方法包括如下任意一种或几种:ref、reactive、toRef、toRefs;
本步骤在具体实施过程中,所述预定方法具体可以为“import”方法,即利用语法import{ref,toRef,toRefs,reactive}from'vue',来将目标方法引入/添加到单个组件中。由此实现将目标方法引入/添加到待转换的Vue2组件中。
步骤S204,基于所述目标方法对各所述目标对象对应的目标变量进行定义,获得各定义语句;
本步骤在具体实施过程中,由于组合式API抛弃了原有的Vue2组件中data对象定义的方式,采用哪里使用,就哪里定义和变更的原则,使得单个功能的代码逻辑得以聚合在一起,更利于阅读和维护,因此需要对Vue2组件中的目标变量进行重新定义。
在具体实施过程中,在对目标变量进行定义之前,需要先从所述目标对象中获取各目标变量,具体获取过程为:获取所述目标对象中各变量的key值;基于各所述变量的key值判断各所述变量的类型,在确定所述变量的类型为响应式类型的情况下,确定所述变量为目标变量。即本步骤中在对变量进行重新定义时,具体是对响应式变量进行重新定义的。即通过获取变量key值,根据变量key值来确定变量类型,进而根据变量类型来确定出目标变量,由此能够准确的确定出需要进行定义的目标变量,为后续对该目标变量进行重新定义奠定了基础。
本步骤中,在确定出目标变量后,即在setup函数中,对每一个找到的响应式变量,进行如下处理,以对其进行重新定义:
(1)通过在data对象中,查找到对应变量值,作为响应式变量的初始值。
(2)通过const关键字,重新申明该变量。并通过typeof方法确定初始值的数据类型。当数据类型为数字、字符串时,通过步骤S203中引入/添加的目标方法ref方法,进行响应式数据的定义,获得定义语句。当数据类型为对象、数组时,通过步骤S203中引入/添加的reactive方法,进行响应式数据的定义,获得定义语句。
对于一些大型的项目,由于还会使用到vuex进行数据管理,此时原组件的响应式变量,不仅仅可以来源于data对象中,还可以来自于vuex的state对象中。因此可以对vue2组件中的stata对象进行提取,在对stata对象进行提取时,具体方式为:在computed函数中,通过return方法中的this.$store.state.变量名进行获取。当原vue2组件中存在这类变量的获取方式时,则需要进行额外的变量提取操作,如下:
(1)通过语法import{useStore}from'vuex',将Vue3组件中组合式api使用vuex中定义数据的方法useStore引入到组件中。
(2)通过语法const store=useStore(),获取到vuex定义的所有全局变量。
(3)通过步骤S203中添加的目标方法toRefs方法,将store变量中的state对象,直接转换为响应式对象。转换后的对象,可以在setup函数内部任意调用。
本步骤中,在完成对目标变量的定义之后,最后还可以通过return关键字将定义好的变量,通过一个对象包裹的形式,放入对象内,对外部函数、模板开放使用。
本步骤中,通过采用上述转换方法,就可以将原本在data对象中定义的响应式变量,转换为定义到setup函数中,做到了变量和代码的聚合,变更后的代码可维护性以及可阅读性更强。
步骤S205,根据生命周期函数关键字与转换方式之间的映射关系,确定第一Vue组件中原始生命周期函数所对应的目标转换方式;基于所述目标转换方式将所述第一Vue组件中的原始生命周期函数转换为目标生命周期函数。
本步骤中,生命周期关键字包括如下任意一种或几种:beforeCreate、create、beforeMount、mouted、beforeUpdate、update、beforeDestroy、destroyed。由于vue3.0重新定义了生命周期函数的名称,所以在对Vue2组件中的原始生命周期函数进行转换之前,需要预先将新生命周期函数引入,具体可以通过语法import{onBeforeMount,onMounted,onBeforeUpdate,onUpdated,onBeforeUnmount,onUnmounted}from'vue',引入到单个组件中。然后在查找到上述任意关键字后就可以通过生命周期函数关键字与转换方式的映射关系来确定目标转换方式;其中生命周期函数关键字与转换方式的映射关系具体包括:
(1)当生命周期函数关键为beforeCreate时,对应的转换方式为:将beforeCreate函数替换为setup函数;
当生命周期函数关键为Create时,对应的转换方式为:将create函数替换为setup函数。
具体的,由于beforeCreate、created这两个vue2的生命周期函数,在vue3框架中已经被废弃,取而代之的是setup函数。因此可以依次将beforeCreate、created代码块内的代码剪切,按照原始的顺序,迁移到setup函数内部的最开始位置,以此实现对原始生命周期函数beforeCreate或created的转换。
(2)当生命周期函数关键为beforeMount时,对应的转换方式为:将beforeMount函数替换为onBeforeMount函数。
当生命周期函数关键字为mouted时,对应的转换方式为:将mouted函数替换为onMounted函数。
当生命周期函数关键字为beforeUpdate时,对应的转换方式为:将beforeUpdate函数替换为onBeforeUpdate函数。
当生命周期函数关键字为Update时,对应的转换方式为:将update函数替换为onUpdate函数。
当生命周期函数关键字为beforeDestroy时,对应的转换方式为:将beforeDestroy函数替换为onBeforeUnmount函数。
当生命周期函数关键字为destroyed时,对应的转换方式为:将destroyed函数替换为onUnmountd函数。
本步骤中,当对利用目标转换方式将原始生命周期函数转换为目标生命周期函数后,就可以将onBeforeMount函数、onMounted函数、onBeforeUpdate函数、onUpdated函数、onBeforeUnmount函数、onUnmounted函数移动至setup函数内。
本步骤中上述所列举的生命周期函数,并非所有Vue组件都会全部用到。如果原Vue组件并未使用到,会秉持了按需加载,减少Vue文件大小的原则,反向将import语法引入的无用的生命周期函数剔除,以使得转换获得的Vue3组件根据准确。
步骤S206,基于变量修改语句关键字从所述第一Vue组件中获取原始变量修改语句;将所述原始变量修改语句转换为目标变量修改语句。
本步骤中,由于组合式API修改变量不同于以往的直接通过“this.data.XXX=新变量值”,这种方式进行修改,因此需要对变量修改语句进行转换。在具体转换时,可以先根据关键字“this.data”来获取到待转换的变量修改语句,然后将待转换的变量修改语音“this.data.XXX=新变量值”转换为“.value=新变量值”,即获得目标变量修改语句。
步骤S207,将各定义语句进行导出,获得最终的目标第二Vue组件。
本步骤中对于需要在template模板中通过插值表达式使用的场景,需要将定义的响应式变量/定义语句进行导出操作。这时候分为两种场景:一种是对于原始数据类型的数据,直接在返回出去的对象中,导出对应的变量名即可。另一种场景是对于reactive定义的引用数据的类型的数据,由于组合式API语法相比vue2组件语法,在template模板上使用变量,会多一层上级对象的引用。为了保证与原本的template语法保持一致,做到不修改原有的template模板语法,需要在所有导出的引用数据类型的变量中,通过toRefs方法将其对象内部的所有值都转换为响应式数据。
本实施例中,通过采用上述步骤就能顺利的将原本Vue2组件转换为Vue3组件,即将Vue2组件语法自动转换为Vue3的组合式api语法。
本实施例中的Vue组件转换方法,开发者不需要再深入了解Vue3组合式API的语法、以及梳理原有的业务逻等繁琐流程,可以实现自动将Vue2组件语法升级到Vue3组合式API语法,提高了转换速率。并且还可以很大程度的避免人为转换过程中,由于失误导致的代码异常的问题,同时,测试人员也无需对有改动的组件进行深度测试,节省了大量的人力投入成本。由于Vue3组合式API是通过按需引入的方式,在项目转换过后,还可以使得最终打包上线的页面,加载速度达到了一定的提升。
本申请又一实施例提供一种单页面应用框架Vue组件的转换装置,如图3所示,包括:
第一获取模块1,用于获取待转换的第一Vue组件;
第二获取模块2,用于获取第一Vue组件中的各目标对象;
添加模块3,用于为所述第一Vue组件添加目标方法;
转换模块4,用于基于所述目标方法对各所述目标对象对应的目标变量进行定义,获得各定义语句,以将所述第一Vue组件转换为第二Vue组件;其中所述第一Vue组件的版本低于所述第二Vue组件的版本。
本实施例在具体实施过程中,所述第一获取模块具体用于:基于配置的目标地址,获取所述待转换的第一Vue组件;或者,基于预设的文件关键字查找项目根目录下的各文件名称,以获取所述待转换的第一Vue组件。
具体的,所述第二获取模块具体用于:基于对象关键字从所述第一Vue组件中获取各目标对象;
所述对象关键字包括如下任意一种或几种:data和state。
本实施例中,所述添加模块具体用于:基于预定的语法将目标方法添加至目标标签对应的代码块中;所述目标方法包括如下任意一种或几种:ref、reactive、toRef、toRefs。
本实施例中的Vue组件转换装置,还包括用于从所述目标对象的各第一变量中确定出各所述目标变量确定模块,所述确定模块具体用于:获取所述目标对象中各变量的key值;基于各所述变量的key值判断各所述变量的类型,在确定所述变量的类型为响应式类型的情况下,确定所述变量为目标变量。
本实施中,所述转换模块具体用:获取所述目标变量的初始值;确定所述初始值的数据类型;采用与所述数据类型对应的目标方法对所述目标变量进行定义;其中,所述数据类型包括如下任意一种:数字类型、字符串类型和数组类型。
所述转换模块还用于:根据生命周期函数关键字与转换方式之间的映射关系,确定第一Vue组件中原始生命周期函数所对应的目标转换方式;基于所述目标转换方式将所述第一Vue组件中的原始生命周期函数转换为目标生命周期函数。
本实施中,转换模块还用于:基于变量修改语句关键字从所述第一Vue组件中获取原始变量修改语句;将所述原始变量修改语句转换为目标变量修改语句。
本实施例中的Vue组件转换装置,开发者不需要再深入了解Vue3组合式API的语法、以及梳理原有的业务逻等繁琐流程,可以实现自动将Vue2组件语法升级到Vue3组合式API语法,提高了转换速率。并且还可以很大程度的避免人为转换过程中,由于失误导致的代码异常的问题,同时,测试人员也无需对有改动的组件进行深度测试,节省了大量的人力投入成本。
由于Vue3组合式API是通过按需引入的方式,在项目转换过后,还可以使得最终打包上线的页面,加载速度达到了一定的提升。
本申请另一实施例提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下方法的步骤:
步骤一、获取待转换的第一Vue组件;
步骤二、获取所述第一Vue组件中的各目标对象;
步骤三、为所述第一Vue组件添加目标方法;
步骤四、基于所述目标方法对各所述目标对象对应的目标变量进行定义,获得各定义语句,以将所述第一Vue组件转换为第二Vue组件,其中所述第一Vue组件的版本低于所述第二Vue组件的版本。
上述方法步骤的具体实施过程可参见上述任一单页面应用框架Vue组件转换方法的实施例,本实施例在此不再重复赘述。
本实施例中,通过获取第一Vue组件中的目标对象,并对第一Vue组件添加目标方法,然后利用目标方法对目标对象中的变量进行重新定义,由此能够获得转换后的各定义语句,从而获得转换后的第二Vue组件,实现了将低版本的Vue组件转换成高版本的Vue组件,提高了转换效率,并且保证了转换的准确率。
本申请另一实施例提供一种电子设备,如图4所示,至少包括存储器1、处理器2,所述存储器1上存储有计算机程序,所述处理器2在执行所述存储器1上的计算机程序时实现如下方法步骤:
步骤一、获取待转换的第一Vue组件;
步骤二、获取所述第一Vue组件中的各目标对象;
步骤三、为所述第一Vue组件添加目标方法;
步骤四、基于所述目标方法对各所述目标对象对应的目标变量进行定义,获得各定义语句,以将所述第一Vue组件转换为第二Vue组件,其中所述第一Vue组件的版本低于所述第二Vue组件的版本
上述方法步骤的具体实施过程可参见上述任意单页面应用框架Vue组件转换方法的实施例,本实施例在此不再重复赘述。
本实施例中通过获取第一Vue组件中的目标对象,并对第一Vue组件添加目标方法,然后利用目标方法对目标对象中的变量进行重新定义,由此能够获得转换后的各定义语句,从而获得转换后的第二Vue组件,实现了将低版本的Vue组件转换成高版本的Vue组件,提高了转换效率,并且保证了转换的准确率。
以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。
Claims (10)
1.一种单页面应用框架Vue组件的转换方法,其特征在于,包括:
获取待转换的第一Vue组件;
获取所述第一Vue组件中的各目标对象;
为所述第一Vue组件添加目标方法;
基于所述目标方法对各所述目标对象对应的目标变量进行定义,获得各定义语句,以将所述第一Vue组件转换为第二Vue组件,其中所述第一Vue组件的版本低于所述第二Vue组件的版本。
2.如权利要求1所述的方法,其特征在于,所述获取第一Vue组件中的各目标对象,具体包括:
基于对象关键字从所述第一Vue组件中获取各目标对象;
所述对象关键字包括如下任意一种或几种:data和state。
3.如权利要求1所述的方法,其特征在于,所述为所述第一Vue组件添加目标方法,具体包括:
基于预定的语法将目标方法添加至目标标签对应的代码块中;
所述目标方法包括如下任意一种或几种:ref、reactive、toRef、toRefs。
4.如权利要求1所述的方法,其特征在于,在所述基于所述目标方法对各目标对象对应的目标变量进行定义之前,所述方法还包括:从所述目标对象中的各变量中确定出各所述目标变量;
所述从所述目标对象的各变量中确定出各所述目标变量,具体包括:
获取所述目标对象中各变量的key值;
基于各所述变量的key值判断各所述变量的类型,在确定所述变量的类型为响应式类型的情况下,确定所述变量为目标变量。
5.如权利要求1所述的方法,其特征在于,所述基于所述目标方法对各目标对象对应的目标变量进行定义,具体包括:
获取所述目标变量的初始值;
确定所述初始值的数据类型;
采用与所述数据类型对应的目标方法对所述目标变量进行定义;
其中,所述数据类型包括如下任意一种:数字类型、字符串类型和数组类型。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据生命周期函数关键字与转换方式之间的映射关系,确定第一Vue组件中原始生命周期函数所对应的目标转换方式;
基于所述目标转换方式将所述第一Vue组件中的原始生命周期函数转换为目标生命周期函数。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
基于变量修改语句关键字从所述第一Vue组件中获取原始变量修改语句;
将所述原始变量修改语句转换为目标变量修改语句。
8.一种单页面应用框架Vue组件的转换装置,其特征在于,包括:
第一获取模块,用于获取待转换的第一Vue组件;
第二获取模块,用于获取第一Vue组件中的各目标对象;
添加模块,用于为所述第一Vue组件添加目标方法;
转换模块,用于基于所述目标方法对各所述目标对象对应的目标变量进行定义,获得各定义语句,以将所述第一Vue组件转换为第二Vue组件;其中所述第一Vue组件的版本低于所述第二Vue组件的版本。
9.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-7任一项所述单页面应用框架Vue组件的转换方法的步骤。
10.一种电子设备,其特征在于,至少包括存储器、处理器,所述存储器上存储有计算机程序,所述处理器在执行所述存储器上的计算机程序时实现上述权利要求1-7任一项所述单页面应用框架Vue组件的转换方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210025856.9A CN114416090A (zh) | 2022-01-11 | 2022-01-11 | 一种单页面应用框架Vue组件的转换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210025856.9A CN114416090A (zh) | 2022-01-11 | 2022-01-11 | 一种单页面应用框架Vue组件的转换方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114416090A true CN114416090A (zh) | 2022-04-29 |
Family
ID=81272249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210025856.9A Pending CN114416090A (zh) | 2022-01-11 | 2022-01-11 | 一种单页面应用框架Vue组件的转换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114416090A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160012023A1 (en) * | 2014-07-10 | 2016-01-14 | MyMojo Corporation | Self-Referencing of Running Script Elements in Asynchronously Loaded DOM Modules |
US20160124827A1 (en) * | 2014-10-30 | 2016-05-05 | The Mathworks, Inc. | System and method for performing model verification |
CN110069312A (zh) * | 2019-04-26 | 2019-07-30 | 北京三快在线科技有限公司 | 一种ui组件配置和生成ui组件库的方法及装置 |
US20200201608A1 (en) * | 2018-12-21 | 2020-06-25 | Dspace Digital Signal Processing And Control Engineering Gmbh | Method and system for generating program code |
CN111966336A (zh) * | 2020-07-24 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种基于vue与可视化图形操作的页面生成方法及装置 |
-
2022
- 2022-01-11 CN CN202210025856.9A patent/CN114416090A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160012023A1 (en) * | 2014-07-10 | 2016-01-14 | MyMojo Corporation | Self-Referencing of Running Script Elements in Asynchronously Loaded DOM Modules |
US20160124827A1 (en) * | 2014-10-30 | 2016-05-05 | The Mathworks, Inc. | System and method for performing model verification |
US20200201608A1 (en) * | 2018-12-21 | 2020-06-25 | Dspace Digital Signal Processing And Control Engineering Gmbh | Method and system for generating program code |
CN110069312A (zh) * | 2019-04-26 | 2019-07-30 | 北京三快在线科技有限公司 | 一种ui组件配置和生成ui组件库的方法及装置 |
CN111966336A (zh) * | 2020-07-24 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种基于vue与可视化图形操作的页面生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107918666B (zh) | 一种区块链上的数据同步方法和系统 | |
CN111752571B (zh) | 程序升级方法、装置、设备及存储介质 | |
CN110955410A (zh) | 一种代码自动生成方法、装置、设备及介质 | |
CN113791768B (zh) | 代码生成方法及装置、存储介质、终端 | |
CN112433701A (zh) | 工业软件开发项目实施流程、内容及代码生成方法及装置 | |
CN106776779B (zh) | 基于Mac平台的JSON数据生成实体文件的方法 | |
CN113094252A (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
US8935657B2 (en) | Model-to-model transformation by kind | |
CN109491904B (zh) | 一种SparkSQL应用程序的自动化测试方法和装置 | |
CN113138755A (zh) | 一种json序列化和反序列化的优化方法及系统 | |
CN117667884A (zh) | 数据迁移方法、装置、设备及存储介质 | |
CN116501415A (zh) | 命令执行方法及装置、电子设备、计算机可读存储介质 | |
CN114416090A (zh) | 一种单页面应用框架Vue组件的转换方法及装置 | |
CN115129598A (zh) | 一种sql语句的风险检测方法、装置、系统及介质 | |
CN110286894B (zh) | 脚本生成方法、装置、计算机设备和存储介质 | |
CN114218261A (zh) | 数据查询方法、装置、存储介质以及电子设备 | |
CN107844639B (zh) | 一种项目标准结构自动生成方法及系统 | |
US7580962B1 (en) | Automatic code generation for co-simulation interfaces | |
CN111190917B (zh) | 一种数据处理方法及装置 | |
CN113742361B (zh) | Js开发环境下使用sql存储json数据的方法及系统 | |
CN116755684B (zh) | OAS Schema的生成方法、装置、设备及介质 | |
CN113033137B (zh) | 数字元器件模型的建立方法、装置和服务器 | |
CN110879722B (zh) | 生成逻辑示意图的方法及装置、计算机可存储介质 | |
CN116954622B (zh) | 抽象语法树和源代码坐标的关联方法、电子设备和介质 | |
CN110045985B (zh) | 一种Targetlink模型标定参数设置方法、装置、设备及介质 |
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 |