判断 小程序 是否 滚动到页面底部 scrolltolower_微信小程序长列表性能优化——recycle-view

2b5c53062d2099144b3e38252ee50fc2.png

背景:

第七次人口普查项目使用是微信小程序原生框架,组件是根据用户需求由项目组前端组组长封装完成的。采集小程序正式登记首页列表页面,根据腾讯老哥在sentry上的监控可以看出,列表页面前端性能比较差,主要表现在一些较老机型,例如:OPPOR9这些较老的机型在页面渲染数据量较大的时候出现白屏、卡顿等问题。

针对以上问题,腾讯老哥提供了一个解决方案,主要是采用微信小程序官方提供的 recycle-view 组件优化列表页面性能,提升用户使用体验。

下面将还原需求场景,并且演示 recycle-view 组件的用法。

1.下载 recycle-view 组件

npm install --save miniprogram-recycle-view

项目的所有组件统一放在 components 文件夹下,将 miniprogram_dist 文件夹下的文件放在小程序项目的 components 文件夹下的 recycle-view 文件夹下。

2.使用 recycle-view 组件

页面中引入组件,在对应文件的 json 文件中填写文件路径:

{  "usingComponents": {    "recycle-view": "../../components/recycle-view/recycle-view",    "recycle-item": "../../components/recycle-view/recycle-item"  }

3.在WXML中使用

      {{item.idx+1}}. {{item.title}}    

注解:

height// recycleView的高度,可以是固定值,因业务需求博主这里是变量bindscrolltolower// recycle-view 组件自定义事件,判断是否滚动到底部scroll-with-animation// 是否开启滚动动画

4.recycle-view 配置

onLoad: function (options) {const ctx = createRecycleContext({      id: 'recycleId',      dataKey: 'formalList',      page: this,      itemSize: function (item, index) {        return {          width: systemInfo.windowWidth,          height: 70        }      }  } }

5.recycle-view 自定义方法

onPageScroll: function () {}, // 一定要留一个空的onPageScroll函数scrollToLower: function (e) {    if (this.isScrollToLower) return    this.isScrollToLower = true    this.page = this.page + 1    const {formalList, isScrollToLower} = this.getFormalList(true)    this.ctx.append(formalList, () => {      this.isScrollToLower = isScrollToLower    })  }

小结:

本篇文章主要是讲博主可以使用一次 recycle-view 组件优化长列表的过程,可能很多人看到后会一头雾水,新手还请借鉴“微信小程序扩展组件长列表优化官方文档”。长列表优化还有哪些解决方案?还请有知道的大佬评论留言给出见解。

传送门:https://developers.weixin.qq.com/miniprogram/dev/extended/component-plus/recycle-view.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 命令之 lspci -- 显示当前设备所有PCI总线信息

文章目录命令介绍常用选项命令示例(一)罗列 PCI 设备命令介绍 lspci命令用于显示当前主机的所有PCI总线信息,以及所有已连接的PCI设备信息。 现在主流设备如网卡储存等都采用PCI总线 常用选项 选项说明-n以数字方式显示PCI厂商和设备代码-…

arm java 性能怎么样,ARM v6上使用java的Number to String转换性能

我在ARM v6处理器上运行Java软件.这个程序的性质要求我将一些数字(int或float)转换为String.处理器运行速度为850Mhz. Java Runtime是OpenJDK Zero VM 1.7.0_21-b02.我并不期待这里有坚如磐石的表演,但我希望能比我在下面的代码片段中看到的更有效.long time1, time2;float[] s…

java rop_Java命令行界面(第23部分):Rop

java ropRop库在其主页上被描述为“用Java编写的轻量级命令行选项解析器”。 Rop的“简介”还指出:“ Rop的设计目的是最小化同时方便,并涵盖了大多数常见的命令行解析用例。” 这篇文章是本系列中有关解析Java命令行参数的系列文章中的第23部分&#xf…

python2打开文件_关于python:何时以二进制模式打开文件(b)?

我注意到在文档中他们总是用wb打开一个CSV文件。 为什么b? 我知道b代表二进制模式,但是你什么时候使用二进制模式(我猜想CSV文件不是二进制模式)。 如果相关我是从arcpy.da.SearchCursor()查询的结果写入CSV 编辑:根据这个答案注意到wb用于编…

Linux 命令之 dmidecode -- 显示机器的DMI信息

文章目录命令介绍常用选项(一)Valid string keywords are(二)Valid type keywords are(三)type全部编码列表命令示例示例1,-d 后面跟任何东西,输出内容都相同,奇葩&#…

java 接口 私有_Java 9:好的,坏的和私有的接口方法

java 接口 私有Java 9 是在几周前发布的。 查看发行说明 ,其中包含许多有趣的功能。 不过,我觉得并非一切都是不如Oracle和Java行家似乎图片吧 。 我看到了Java世界中的三个趋势,分别是好,坏和丑陋。 让我们从好的开始。 Birdman…

java群面自我介绍,腾讯群面,自我介绍很重要

我面试时间是十一点,但是一直等到十二点多才开始,去了以后先要填一张表,贴照片,内容差不多就是我们自己简历上的,然后再群面的时候交给面试官。我们那个小组是六个人,在一个房间里,面试官先让我…

python卸载module_Python学习笔记

拖了一整年终于开始学习Python编程。为了逼自己快速上路,强行要求自己本学期的两门课程全部的coding作业用Python完成。 一门机器学习(computational Stats),一门Jeff WU 大佬的实验设计与分析(DOE)。即使R…

Linux 命令之 uname -- 显示系统/主机的相关信息

文章目录一、命令介绍二、常用选项三、命令示例(一)显示系统主机名、内核版本号、CPU类型等信息一、命令介绍 uname 命令的英文全称即“Unix name”。用于显示系统相关信息,比如主机名、内核版本号、硬件架构等。如果未指定任何选项&#xf…

json api_JSON模式在构建和部署API中的作用

json api什么是JSON模式 ? 它提供了一种描述任何JSON值的结构和属性的彻底方法。 在记录对任何JSON API的请求和响应时,它非常有用。 本文将探讨其在API的软件开发周期中的作用。 记录JSON响应格式 定义数据架构的最明显的用例也许是在记录API响应的结构…

java 中允许键重复的,二叉搜索树的定义是否允许重复键?

许多算法将指定排除重复项 . 例如&#xff0c;MIT算法书中的示例算法通常提供没有重复的示例 . 实现重复(在节点上或在一个特定方向上作为列表)是相当简单的 . )大多数(我见过)将左边的孩子指定为<&#xff0c;将右边的孩子指定为> . 实际上&#xff0c;允许右子节点或左…

mlp神经网络_白天鹅黑天鹅灰天鹅?卷积神经网络帮你搞定识别

全文共3014字&#xff0c;预计学习时长6分钟本文将通过一系列的天鹅图片来解释卷积神经网络&#xff08;CNN&#xff09;的概念&#xff0c;并使用CNN在常规多层感知器神经网络上处理图像。图像分析假设我们要创建一个能够识别图像中的天鹅的神经网络模型。天鹅具有某些特征&am…

Linux 关机/关闭主机/关闭系统/重启系统/注销系统的命令

文章目录一、shutdown二、reboot三、init四、halt五、poweroff六、logout七、systemctl八、Alt PrtSc (SysRq) REISUB九、molly-guard&#xff08;一&#xff09;molly-gurar 是什么&#xff1f;&#xff08;二&#xff09;如何安装 molly guard?一、shutdown 该命令用于断…

java登录界面命令_Java命令行界面(第26部分):CmdOption

java登录界面命令由于Tweet&#xff0c;我了解了本系列中第26个基于Java的功能强大的库&#xff0c;该库用于解析命令行参数 。 CmdOption在其GitHub主页上被描述为“一个通过注释配置的&#xff0c;用于Java 5应用程序的简单注释驱动命令行解析器工具包。” 该项目的副标题是“…

matlab如何添加度,matlab里的模糊工具箱绘制隶属度函数曲线导入到word的方法

在fuzzy logic toolbox里有 fuzzy membershipfunction可以编辑隶属度函数&#xff0c;非常方便&#xff0c;但是我们写论文一般要把相应的曲线导入到word里&#xff0c;怎样将隶属度函数曲线导入到word里呢&#xff1f;本人也苦苦的寻找了好久。。。方法如下&#xff1a;先看看…

pythonista3使用说明_Pythonista中文文档:sound

sound — 音效和音乐播放 sound模块包含在iOS上播放音效和音频文件的功能。 它还可以使用Recorder类从麦克风录制音频文件。 注意: 为了使用Recorder类&#xff0c;你必须允许访问麦克风。首次使用Recorder.record()方法时&#xff0c;系统会自动显示一个对话框。如果你未授权访…

Linux 命令之 hostnamectl -- 查看/修改当前主机的信息

文章目录命令介绍常用选项命令示例&#xff08;一&#xff09;查看当前主机的信息&#xff08;二&#xff09;设置当前主机的名称命令介绍 hostnamectl 可用于查询和更改系统主机名和相关设置。此工具区分三种不同的主机名&#xff1a; 高级“漂亮”主机名&#xff0c;其中可…

getopt java_Java命令行界面(第28部分):getopt4j

getopt javagetopt4j的页面将其描述为“一个根据GNU样式解析命令行参数的库。” 然后&#xff0c; 页面介绍getopt4j &#xff1a;“getopt4j库旨在以与glibc &#xff08;GNU C运行时库&#xff09;中的C getopt&#xff08;&#xff09;函数相同的方式解析命令行选项。 与原始…

matlab 返回变量类型的命令,MATLAB主要命令汇总

MATLAB主要命令汇总1、常用信息help:在线帮助(显示在命令窗)。helpwin:在线帮助(独立窗口显示)。ver:MATLAB及工具箱的版本信息。2、管理工作区命令who:显示当前变量。whos:显示当前变量具体信息。clear:从内存中清楚变量和函数。quit:退出MATLAB。3、管理命令和函数what:显示当…

springboot redis token_Spring Boot + Redis + 注解 + 拦截器来实现接口幂等性校验

优质文章&#xff0c;及时送达作者 | wangzaiplus链接 | www.jianshu.com/p/6189275403ed一、概念幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次比如:订单接口, 不能多次创建订单支付接口, 重复支付同一笔订单只能扣一次钱支付宝回调接口, 可能…