热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【小程序】分页加载数据,下拉加载更多,上拉刷新

【小程序】分页加载数据,下拉加载更多,上拉刷新分页加载的优点就不多说了,下面主要记录一下几个问题点。scroll-view组件不能用在

【 小程序】分页加载数据,下拉加载更多,上拉刷新

分页加载的优点就不多说了,下面主要记录一下几个问题点。

  1. scroll-view组件不能用在页面根布局中,不然触发不了系统的onPullDownRefresh()、onReachBottom()回调。
  2. 在Page页面配置中增加如下两项配置:

enablePullDownRefresh: true,onReachBottomDistance: 100,

  1. 如何判断是否加载完毕?

计算公式:(当前页数 - 1)* 每页加载个数 + 当前请求到的数据Data.length == 数据总数 ; // 则加载完毕

  1. 详细代码参考

@1. data中定义变量

const LIMIT = 6 // 每次加载的个数
data{currentPage: 1,noMoreData: false,isLoading: false,
}

@2. 数据请求接口封装

/*** 获取热推产品信息*/async getHotProductInfo(currentPage = 1, reset = false) {tips.loading()let params = {cityCode: 2500, // 默认上海page: currentPage,limit: LIMIT,}try {let result = await network.GET('https://##.com/dany/poster/##', params)tips.loaded()if (result && result.success && result.data && result.data.hotProduct && result.data.hotProductTotalCount) {// 判断是否加载完if ((currentPage - 1) * LIMIT + result.data.hotProduct.length === result.data.hotProductTotalCount) {this.noMoreData = true}let newHotProduct = JSON.parse(JSON.stringify(result.data.hotProduct))this.hotPushDatas.hotProduct = reset ? newHotProduct : this.hotPushDatas.hotProduct.concat(newHotProduct)this.$apply()}} catch (e) {tips.loaded()}}

@3. 增加下拉、上拉回调方法

async onPullDownRefresh() {await this.reload()wepy.stopPullDownRefresh()}onReachBottom() {if (this.noMoreData) {return}this.loadMore()}async loadMore() {if (this.noMoreData || this.isLoading) {return}this.isLoading = truethis.currentPage += 1await this.getHotProductInfo(this.currentPage, false)this.isLoading = false}async reload() {this.noMoreData = falsethis.currentPage = 1return await this.getHotProductInfo(this.currentPage, true)}

@4. 在onLoad中执行,this.reload()初始化数据。

this.reload()

以上就是小程序下拉加载更多、上拉刷新当前数据的实现,有问题欢迎留言讨论。


推荐阅读
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ... [详细]
  • 本文探讨了在 Vue 2.0 项目中使用 Axios 获取数据时可能出现的错误,并提供详细的解决方案和最佳实践。 ... [详细]
  • 在Java编程中,将字符串转换为整数类型时,必须确保该字符串表示的数值在int类型的取值范围内。如果超出范围,将会抛出异常。本文介绍如何安全地进行这种转换,并提供详细的代码示例。 ... [详细]
  • 本文详细介绍了如何在Android 4.4及以上版本中配置WebView以实现内容的自动高度调整和屏幕适配,确保中文显示正常,并提供代码示例。 ... [详细]
  • 本文探讨了如何通过WebBrowser控件在用户点击输入框时自动显示图片验证码。该过程可能涉及JavaScript事件的触发与响应。 ... [详细]
author-avatar
mobiledu2502875803
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有