一种基于Pinia实现仓库数据持久化的装置及方法与流程

文档序号:36235444发布日期:2023-12-01 16:12阅读:52来源:国知局
一种基于的制作方法

本发明涉及计算机,具体涉及一种基于pinia实现仓库数据持久化并记录变更日志的装置及方法。


背景技术:

1、在web应用程序开发过程中,前端状态管理对于应用程序的稳定性和可维护性具有重要意义。为了更好地管理前端状态,许多前端框架都引入了状态管理库,如vue.js的vuex和react的redux。然而,这些状态管理库在某些情况下可能显得过于繁琐。在这种背景下,pinia作为一个轻量级的状态管理库应运而生,提供了简洁易用的api和清晰的状态管理结构,逐渐受到越来越多开发者的青睐。

2、pinia是一个数据仓库,用于存储一定范围内的通用的数据。尽管pinia框架在状态管理方面表现出色,但在数据持久化方面仍有改进空间。前端数据的持久化,可以通过存储用户数据,在重新访问时提升用户体验,降低服务器压力,减少不必要的数据请求。当前,pinia框架几乎不具备的数据持久化能力,可能无法满足复杂业务场景下对数据持久化的需求。另外,pinia框架自身不具备记录状态变更日志的功能,在复杂的业务场景中,跟踪数据状态变化,是我们调试功能代码和提高工作效率的必要工作。


技术实现思路

1、为了弥补上述不足,本发明的目的在于提出一种基于pinia实现仓库数据持久化且记录其变更日志的方案与装置,通过解析单元、侦听单元、存储单元和日志单元的高效协同工作,实现了仓库数据状态自动持久化和实时输出日志记录的功能。

2、基于上述目的,第一方面,本发明提供了一种基于pinia实现仓库数据持久化的装置,该装置包括解析单元、侦听单元、存储单元和日志单元;

3、所述解析单元用于读取解析本装置在pinia仓库中的配署参数;

4、所述侦听单元用于根据解析单元读取的配署参数,开启对pinia仓库全部属性或部分属性的监听,捕捉数据变化值,上报并通知存储单元和日志单元;

5、所述存储单元用于根据接收到的存储策略和数据;

6、所述日志单元用于在浏览器控制台打印仓库变更日志、持久化日志。

7、作为本发明的进一步方案,所述解析单元还用于加载、解析通过pinia仓库的实例化函数传入的本装置的配置参数,其中,所述配置参数包括是否开启本装置以及存储持久化策略组。

8、作为本发明的进一步方案,所述侦听单元还用于监听页面的初始化,通知存储单元加载持久化数据,初始化仓库。

9、作为本发明的进一步方案,所述存储单元为处理持久化逻辑的单元,所述存储单元还用于将待持久化的数据按策略持久化到storage中,其中,storage包括localstorage或sessionstorage(storage:现代浏览器的存储方式之一,包括会话周期的sessionstorage和永久性的localstorage)。

10、作为本发明的进一步方案,所述存储单元按策略持久化时,若策略中指定了自定义的持久化函数,则执行自定义的持久化函数,否则执行默认的持久化策略。

11、作为本发明的进一步方案,在页面刷新、重载时,所述存储单元还用于读取并反序列化storage中已被持久化的数据,并初始化到pinia仓库中。

12、作为本发明的进一步方案,所述日志单元包括仓库最新值、本次变化持久化到localstorage中的值和持久化到sessionstorage中的值。

13、第二方面,本发明还提供了一种基于pinia实现仓库数据持久化的方法,该方法包括以下步骤:

14、通过解析单元加载、解析本装置的配置参数,由侦听单元开启对pinia仓库数据的监听;

15、数据发生改变时通知存储单元根据存储策略对仓库数据进行持久化,通知日志单元在浏览器控制台输出更新的仓库数据、本次持久化到storage中的数据;

16、页面初始化时,存储单元读取已持久化的数据,反序列化后将数据初始化到仓库中。

17、作为本发明的进一步方案,在基于解析单元、侦听单元、存储单元和日志单元的有效组合执行该基于pinia实现仓库数据持久化的方法时,包括以下步骤:

18、由解析单元读取解析本装置在pinia仓库中的配署参数;

19、由侦听单元根据解析单元读取的配署开启对pinia仓库全部属性或部分属性的监听,捕捉数据变化值,上送并通知存储单元和日志单元,而且,侦听单元还负责监听页面的初始化,通知存储单元加载持久化数据,初始化仓库;

20、由存储单元,处理持久化逻辑的单元,根据接收到的存储策略和数据,将需要持久化的数据按策略持久化到storage中,若策略中指定了自定义的持久化函数,则执行自定义的持久化函数,否则执行默认的持久化策略;

21、由日志单元在浏览器控制台分类、分标签、分颜色打印仓库变更日志、持久化日志。

22、作为本发明的进一步方案,在页面刷新、重载时,存储单元负责读取并反序列化storage中已被持久化的数据,并初始化到pinia仓库中。

23、本发明的又一方面,还提供了一种计算机设备,包括存储器和处理器,该存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述任一项根据本发明的基于pinia实现仓库数据持久化的方法。

24、本发明的再一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被执行时实现上述任一项根据本发明的基于pinia实现仓库数据持久化的方法。

25、本发明至少具有以下有益技术效果:

26、本发明提出了一种基于pinia实现仓库数据持久化的装置及方法,通过本装置实现了对pinia仓库数据状态的自动持久化,以及在浏览器控制台实时输出数据变更日志。替代了开发人员手动对数据进行持久化的传统方式,降低了研发成本;将数据持久化到storage中,即使刷新浏览器用户数据依然存在,提高产品界面的加载速度,提升了用户体验;实时的日志输出,开发过程中方便数据状态追踪、代码调试,提高了工作效率;丰富的配置项,使本装置可以灵活的兼容多种业务场景,保证了扩展维护的灵活性和应用的广泛性。

27、本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。



技术特征:

1.一种基于pinia实现仓库数据持久化的装置,其特征在于,该装置包括解析单元、侦听单元、存储单元和日志单元;

2.根据权利要求1所述的基于pinia实现仓库数据持久化的装置,其特征在于,所述解析单元还用于加载、解析通过pinia仓库的实例化函数传入的本装置的配置参数,其中,所述配置参数包括是否开启本装置以及存储持久化策略组。

3.根据权利要求2所述的基于pinia实现仓库数据持久化的装置,其特征在于所述侦听单元还用于监听页面的初始化,通知存储单元加载持久化数据,初始化仓库。

4.根据权利要求3所述的基于pinia实现仓库数据持久化的装置,其特征在于,所述存储单元为处理持久化逻辑的单元,所述存储单元还用于将待持久化的数据按策略持久化到storage中,其中,storage包括localstorage或sessionstorage。

5.根据权利要求4所述的基于pinia实现仓库数据持久化的装置,其特征在于,所述存储单元按策略持久化时,若策略中指定了自定义的持久化函数,则执行自定义的持久化函数,否则执行默认的持久化策略。

6.根据权利要求5所述的基于pinia实现仓库数据持久化的装置,其特征在于,在页面刷新、重载时,所述存储单元还用于读取并反序列化storage中已被持久化的数据,并初始化到pinia仓库中。

7.根据权利要求6所述的基于pinia实现仓库数据持久化的装置,其特征在于,所述日志单元包括仓库最新值、本次变化持久化到localstorage中的值和持久化到sessionstorage中的值。

8.一种基于pinia实现仓库数据持久化的方法,基于权利要求1-7任一项所述基于pinia实现仓库数据持久化的方法实现仓库数据持久化且记录变更日志,其特征在于,该基于pinia实现仓库数据持久化的方法包括以下步骤:

9.根据权利要求8所述的基于pinia实现仓库数据持久化的方法,其特征在于,在基于解析单元、侦听单元、存储单元和日志单元的有效组合执行该基于pinia实现仓库数据持久化的方法时,包括以下步骤:

10.根据权利要求9所述的基于pinia实现仓库数据持久化的方法,其特征在于,在页面刷新、重载时,存储单元负责读取并反序列化storage中已被持久化的数据,并初始化到pinia仓库中。


技术总结
本发明提供了一种基于Pinia实现仓库数据持久化的装置及方法,该装置包括解析单元、侦听单元、存储单元和日志单元;通过本装置实现了对Pinia仓库数据状态的自动持久化,以及在浏览器控制台实时输出数据变更日志。替代了开发人员手动对数据进行持久化的传统方式,降低了研发成本;将数据持久化到storage中,即使刷新浏览器用户数据依然存在,提高产品界面的加载速度,提升了用户体验;实时的日志输出,开发过程中方便数据状态追踪、代码调试,提高了工作效率;丰富的配置项,使本装置可以灵活的兼容多种业务场景,保证了扩展维护的灵活性和应用的广泛性。

技术研发人员:崔守佳,朱道昌
受保护的技术使用者:济南浪潮数据技术有限公司
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1