掌桥专利:专业的专利平台
掌桥专利
首页

一种小程序路由方法、装置、计算机设备及存储介质

文献发布时间:2023-06-19 11:19:16


一种小程序路由方法、装置、计算机设备及存储介质

技术领域

本发明涉及信息处理领域,尤其涉及小程序路由方法、装置、计算机设备及存储介质。

背景技术

随着云计算、云服务技术的不断更新、功能日渐强大,用户前端的应用逐渐由本地APP向由各种小程序构建的轻应用、快应用转变。微信、支付宝、百度等都开始推出基于自身平台的小程序;这些小程序占用本地资源少,运行速度快,能满足生活中各种简单任务的需要,也越来越受用户的推崇。

然而,小程序多是基于JavaScript进行的扩展,在功能实现上多受制于原技术栈的设计。以微信小程序为例,在实现页面路由时只支持传递字符串型的数据,而面对更为复杂的应用,无法传递如函数或其他类型的数据,这对于一些不支持转换为字符串的数据,或者转换之后会丢失原有上下文的数据,则无法传递给下一页面;同时,使得开发过程变得复杂,生产效率不高。

发明内容

本发明实施例提供一种小程序路由方法、装置、计算机设备及存储介质,以解决页面路由无法传递字符串之外数据类型的问题。

一种小程序路由方法,包括:

在小程序初始化阶段,创建路由实例,并将所述路由实例添加为该小程序内所有页面的属性;

在所述小程序的所有页面的加载方法中增加钩子函数,所述钩子函数在当前页面被加载时优先运行;

在传递任意类型的参数时,调用所述路由实例将所述参数保存并转换成唯一的标识信息后,将所述标识信息传递给目标页面;

当所述目标页面的钩子函数运行时,读取所述标识信息并转换成所述参数;

所述目标页面的加载方法获取所述参数并使用。

一种小程序路由装置,包括:

路由建立模块,用于在小程序初始化阶段,创建路由实例,并将所述路由实例添加为该小程序内所有页面的属性;

钩子设置模块,用于在所述小程序的所有页面的加载方法中增加钩子函数,所述钩子函数在当前页面被加载时优先运行;

索引模块,用于在传递任意类型的参数时,调用所述路由实例将所述参数保存并转换成唯一的标识信息后,将所述标识信息传递给目标页面;

参数读取模块,用于当所述目标页面的钩子函数运行时,读取所述标识信息并转换成所述参数;

参数应用模块,用于所述目标页面的加载方法获取所述参数并使用。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述小程序路由方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述小程序路由方法的步骤。

上述小程序路由方法、装置、计算机设备及存储介质,通过在小程序初始化阶段为所有页面创建路由实例,为页面提供封装方法;并且,在所有页面的加载方法中添加钩子函数,以便于在小程序的页面正常运行周期之前运行,拦截所需要的数据;通过将需要传递的参数(任意数据类型的数据)保存后索引成唯一标识信息(id),利用该标识信息进行页面间的传递,并在目标页面加载时用钩子函数读取该标识信息,进而解决了小程序页面路由时对任意数据类型数据的传递。本技术方案通过构建一个路由模块,允许小程序开发者传递任意类型的数据,包括函数及各类复杂对象等,大大节省了开发周期,提高了生产效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中小程序路由方法的一应用环境示意图;

图2是本发明一实施例中小程序路由方法的流程图;

图3是本发明一实施例中小程序路由装置的示意图;

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供的小程序路由方法,主要应用在支持小程序的智能设备上,包括但不限于智能手机、平板电脑等。一个小程序内可能包括多个页面,各个页面之间在切换时需要传递数据,如下一页面需要上一页面所提供的数据作为输入,同时,又可能将当前页面的处理结果传递给下几个页面。例如,在如图1所示的示意图中,页面A、B、C、D、E之间存在复杂的路由关系。

在一实施例中,如图2所示,提供了一种小程序路由方法,该方法基于uni-app框架。uni-app是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,即可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台,极大节省了开发周期和维护成本。具体包括以下步骤:

S1:在小程序初始化阶段,创建路由实例,并将路由实例添加为该小程序内所有页面的属性。

在uni-app框架下,创建一个router路由实例,通过uni-app添加到所有页面的$router属性上,具体实现为Vue.prototype.$router=new Router(routes)。

S2:在小程序的所有页面的加载方法中增加钩子函数,钩子函数在当前页面被加载时优先运行。

根据小程序的页面生存周期,每个页面在加载时均包含一默认的加载方法,例如,微信小程序的页面加载方法为onLoad()。钩子函数在该加载方法运行时优先运行,起到拦截信息的作用。

S3:在传递任意类型的参数时,调用路由实例在将参数保存并转换成唯一的标识信息后,将标识信息传递给目标页面。

其中,当前页面需要传递任意参数给目标页面时,调用路由实例的封装方法,将参数保存并生成唯一的标识信息,并作为唯一参数传递给目标页面。

优选地,可根据预设哈希算法,将参数存储并索引成唯一的标识信息(id),可保证标识信息的唯一性,从而避免因数据量大时出现重复的id。

更进一步地,将标识信息转换成字符串类型数据,并将字符串类型数据传递至目标页面。具体地,设传递至下一页面的参数为:“url:`/page/path?route_id=${id}`”,其中,id即对应上一页面传递参数的索引id。

S4:当目标页面的钩子函数运行时,读取标识信息并转换成参数。

具体地,当目标页面运行时,钩子函数在onLoad()方法运行时优先运行,并根据拦截到的标识信息检索到对应的参数。

S5:目标页面的加载方法获取参数并使用。

当钩子函数读取到标识信息对应的参数后,转由目标页面的加载方法继续运行,即,小程序的页面得到上一页面传递过来的任意类型的参数并使用,从而完成整个路由过程。

在本实施例中,基于uni-app框架,通过uni-app给所有页面添加路由对象(router)和钩子函数;利用唯一id进行参数传递,解决了小程序中不能传递字符串之外数据类型的问题。

可以理解地,本发明提供的小程序路由方法不限于采用uni-app框架,只要构建一个路由模块,保存页面间传值的参数并生成唯一id传递到下一页面,下一页面在初始化过程中根据收到的id取出对应的数据即可,具有广泛的适用性。

在一实施例中,提供一种小程序路由装置,该小程序路由装置与上述实施例中小程序路由方法一一对应。如图3所示,该产品数据的路由建立模块31、钩子设置模块32、索引模块33、参数读取模块34及参数应用模块35。

其中,路由建立模块31,用于在小程序初始化阶段,创建路由实例,并将路由实例添加为该小程序内所有页面的属性;

钩子设置模块32,用于在小程序的所有页面的加载方法中增加钩子函数,钩子函数在当前页面被加载时优先运行;

索引模块33,用于在传递任意类型的参数时,调用路由实例在将参数保存并转换成唯一的标识信息后,将标识信息传递给目标页面;

参数读取模块34,用于当目标页面的钩子函数运行时,读取标识信息并转换成参数;

参数应用模块35,用于目标页面的加载方法获取参数并使用;

进一步地,索引模块还包括数据类型转换子模块331,用于将标识信息转换成字符串类型数据,并将字符串类型数据传递至目标页面;以及索引生成子模块332,用于根据预设哈希算法,将参数存储并索引成唯一的标识信息。

关于小程序路由装置的具体限定可以参见上文中对于小程序路由方法的限定,在此不再赘述。上述小程序路由装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中小程序路由方法的步骤,例如图2所示的步骤S1至步骤S5。或者,处理器执行计算机程序时实现上述实施例中小程序路由装置的各模块/单元的功能,例如图3所示模块31至模块35的功能。为避免重复,这里不再赘述。

在一实施例中,提供一计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中小程序路由方法,或者,该计算机程序被处理器执行时实现上述装置实施例中小程序路由装置中各模块/单元的功能。为避免重复,这里不再赘述。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

相关技术
  • 一种小程序路由方法、装置、计算机设备及存储介质
  • 小程序局部编译方法、装置、设备及计算机可读存储介质
技术分类

06120112881084