ReactNative组件构建复杂表格的优化方法和装置制造方法及图纸

技术编号:39060817 阅读:15 留言:0更新日期:2023-10-12 19:53
本发明专利技术提供了一种React Native组件构建复杂表格的优化方法和装置,该方法中,会采用React.memo高阶函数对复杂表格的各组件进行遍历,以确定当前组件的前后两次的数据是否一致性,若一致,则控制当前组件不更新渲染,并使用最近一次的渲染结果,也就是本发明专利技术的方法中,当当前组件的前后两次的数据一致时,直接使用当前组件最近一次的渲染结果,不再进行重新渲染,即只会渲染新进来的表格的数据项,减少了加载数据的数据量,提高了加载数据时的效率和流畅性,使得数据渲染更加快速。使得数据渲染更加快速。使得数据渲染更加快速。

【技术实现步骤摘要】
React Native组件构建复杂表格的优化方法和装置


[0001]本专利技术涉及计算机的
,尤其是涉及一种React Native组件构建复杂表格的优化方法和装置。

技术介绍

[0002]金融行业中(例如,银行),常常需要构建可竖直上下行滚动、水平左右列滚动并固定上侧行和左侧列的复杂表格。如,对于银行中的基金自选列表中,上侧行包括基金的一些属性标题(如:基金名称、净值、估值、添加后收益和添加时长、近一周等),左侧列包括各基金具体的名称,在进行表格建立时,需要满足上侧行和左侧列固定不动,其它行可以竖直上下滚动,其它列可以水平左右滚动。
[0003]上述复杂表格,目前React Native还无法直接支持,需要自定义布局实现。具体实现为:总体采用左右布局,左边布局固定列表,采用循环遍历数据;右边布局可水平滚动列(采用FlatList组件,设置水平属性)进行遍历,并在最外层嵌套可滚动的FlatList组件,主要进行上下滚动,并实现下拉至底部加载下一页操作,这样便实现了上下左右滚动并固定首列的布局。
[0004]由于React Native对于复杂表格没有完整的实现解决方案,还需要自定义布局实现,而现有的FlatList组件或sectionList组件都只能满足部分功能,且性能也不尽人意,随着数据增多会出现分页的加载数据卡顿,渲染缓慢。
[0005]即按照现有的自定义布局实现的React Native组件构建的复杂表格在进行下拉加载第二页数据时,需要等待2

3秒去渲染现实数据,而且页数越大,数据越多,等待时间就越长,甚至出现手机发热、页面卡顿的情况。
[0006]综上,现有的React Native组件构建的复杂表格存在加载数据卡顿、渲染数据迟钝的技术问题。

技术实现思路

[0007]有鉴于此,本专利技术的目的在于提供一种React Native组件构建复杂表格的优化方法,以缓解现有的React Native组件构建的复杂表格存在加载数据卡顿、渲染数据迟钝的技术问题。
[0008]第一方面,本专利技术实施例提供了一种React Native组件构建复杂表格的优化方法,包括:
[0009]采用React.memo高阶函数对复杂表格的各组件进行遍历,以确定当前组件的前后两次的数据是否一致性,其中,所述React.memo高阶函数的入参包括:所述当前组件和对比函数,所述对比函数用于对所述当前组件的上一次的数据与当前次的数据进行对比;
[0010]若一致,则控制所述当前组件不更新渲染,并使用最近一次的渲染结果。
[0011]进一步的,若所述当前组件中的数据的属性为函数,所述方法还包括:
[0012]采用React.useCallback函数对所述当前组件中的前后两次的数据进行处理,得
到处理后的数据;
[0013]采用React.memo高阶函数对复杂表格的所述当前组件的前后两次的处理后的数据进行一致性校验;
[0014]若一致,则控制所述当前组件不更新渲染,并使用最近一次的渲染结果。
[0015]进一步的,若所述当前组件中的数据的属性为对象,所述方法还包括:
[0016]采用React.useMemo函数对所述当前组件中的前后两次的数据进行处理,得到处理后的数据;
[0017]采用React.memo高阶函数对复杂表格的所述当前组件的前后两次的处理后的数据进行一致性校验;
[0018]若一致,则控制所述当前组件不更新渲染,并使用最近一次的渲染结果。
[0019]进一步的,若所述当前组件中的数据为复杂耗时的函数,所述方法还包括:
[0020]采用React.useMemo函数对所述当前组件中的数据的执行结果进行缓存。
[0021]进一步的,所述方法还包括:
[0022]采用mobx

react

lite的observer函数分别对每一组件的状态变量进行监听;
[0023]若监听得到目标组件的状态变量发生变化,则控制所述目标组件更新渲染。
[0024]进一步的,所述React.memo高阶函数为开源的高阶函数。
[0025]第二方面,本专利技术实施例还提供了一种React Native组件构建复杂表格的优化装置,包括:
[0026]React.memo高阶函数遍历单元,用于采用React.memo高阶函数对复杂表格的各组件进行遍历,以确定当前组件的前后两次的数据是否一致性,其中,所述React.memo高阶函数的入参包括:所述当前组件和对比函数,所述对比函数用于对所述当前组件的上一次的数据与当前次的数据进行对比;
[0027]控制单元,用于若一致,则控制所述当前组件不更新渲染,并使用最近一次的渲染结果。
[0028]进一步的,若所述当前组件中的数据的属性为函数,所述装置还用于:
[0029]采用React.useCallback函数对所述当前组件中的前后两次的数据进行处理,得到处理后的数据;
[0030]采用React.memo高阶函数对复杂表格的所述当前组件的前后两次的处理后的数据进行一致性校验;
[0031]若一致,则控制所述当前组件不更新渲染,并使用最近一次的渲染结果。
[0032]第三方面,本专利技术实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法的步骤。
[0033]第四方面,本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述机器可运行指令在被处理器调用和运行时,所述机器可运行指令促使所述处理器运行上述第一方面任一项所述的方法。
[0034]在本专利技术实施例中,提供了一种React Native组件构建复杂表格的优化方法,包括:采用React.memo高阶函数对复杂表格的各组件进行遍历,以确定当前组件的前后两次的数据是否一致性,其中,React.memo高阶函数的入参包括:当前组件和对比函数,对比函
数用于对当前组件的上一次的数据与当前次的数据进行对比;若一致,则控制当前组件不更新渲染,并使用最近一次的渲染结果。通过上述描述可知,本专利技术的React Native组件构建复杂表格的优化方法中,会采用React.memo高阶函数对复杂表格的各组件进行遍历,以确定当前组件的前后两次的数据是否一致性,若一致,则控制当前组件不更新渲染,并使用最近一次的渲染结果,也就是本专利技术的方法中,当当前组件的前后两次的数据一致时,直接使用当前组件最近一次的渲染结果,不再进行重新渲染,即只会渲染新进来的表格的数据项,减少了加载数据的数据量,提高了加载数据时的效率和流畅性,使得数据渲染更加快速,缓解了现有的React Native组件构建的复杂表格存在加载数据卡顿、渲染数据迟钝的技术问题。
附图说明本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种React Native组件构建复杂表格的优化方法,其特征在于,包括:采用React.memo高阶函数对复杂表格的各组件进行遍历,以确定当前组件的前后两次的数据是否一致性,其中,所述React.memo高阶函数的入参包括:所述当前组件和对比函数,所述对比函数用于对所述当前组件的上一次的数据与当前次的数据进行对比;若一致,则控制所述当前组件不更新渲染,并使用最近一次的渲染结果。2.根据权利要求1所述的方法,其特征在于,若所述当前组件中的数据的属性为函数,所述方法还包括:采用React.useCallback函数对所述当前组件中的前后两次的数据进行处理,得到处理后的数据;采用React.memo高阶函数对复杂表格的所述当前组件的前后两次的处理后的数据进行一致性校验;若一致,则控制所述当前组件不更新渲染,并使用最近一次的渲染结果。3.根据权利要求1所述的方法,其特征在于,若所述当前组件中的数据的属性为对象,所述方法还包括:采用React.useMemo函数对所述当前组件中的前后两次的数据进行处理,得到处理后的数据;采用React.memo高阶函数对复杂表格的所述当前组件的前后两次的处理后的数据进行一致性校验;若一致,则控制所述当前组件不更新渲染,并使用最近一次的渲染结果。4.根据权利要求1所述的方法,其特征在于,若所述当前组件中的数据为复杂耗时的函数,所述方法还包括:采用React.useMemo函数对所述当前组件中的数据的执行结果进行缓存。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:采用mobx

react

lite的ob...

【专利技术属性】
技术研发人员:蒋红林周伟张炜权张朝晖万齐帅
申请(专利权)人:平安银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1