当前位置: 首页 > news >正文

【微信小程序开发】小程序中的上滑加载更多,下拉刷新是如何实现的?

在这里插入图片描述

✨✨ 欢迎大家来到景天科技苑✨✨

🎈🎈 养成好习惯,先赞后看哦~🎈🎈

🏆 作者简介:景天科技苑
🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。
🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flask等框架,linux,shell脚本等实操经验,网站搭建,数据库等分享。

所属的专栏:微信小程序开发零基础教学,难点与应用实战总结
景天的主页:景天科技苑

文章目录

  • 1.上滑加载更多
  • 2.下拉刷新
  • 3.scroll-view实现上拉加载更多,下拉刷新

1.上滑加载更多

结合上一章我们的项目,先在原来的基础上添加个goods页面
在这里插入图片描述

js代码

Page({data: {good_list: [1, 2, 3]},// 当滑动到底部还有100rpx时,就会触发这个函数执行---》发送请求获取数据onReachBottom() {console.log('上拉了')// 发送请求获取数据wx.request({url: 'http://127.0.0.1:8000/app01/random/',method:'GET',success:(res)=>{this.setData({good_list:this.data.good_list.concat(res.data)})}})},
})

###wxml####

<view wx:for="{{good_list}}" wx:key="*this">{{item}}</view>

在这里插入图片描述

这样的123不好看没我们设置个样式
###wxss###

view{height: 400rpx;display: flex;justify-content: center;align-items: center;}/* 奇数背景色是粉色 */
view:nth-child(odd){background-color: pink;
}/* 偶数背景色绿色 */
view:nth-child(even){background-color: rgb(17, 133, 88);
}

在这里插入图片描述

现在我们要实现,往上拉,拉到最底部时,显示更多的数字
此时需要在goods.json文件中配置onReachBottomDistance

###json###

{"usingComponents": {},"onReachBottomDistance": 100
}

onReachBottomDistance的意思是,当拉到距离底部距离多少rpx时开始触发加载更多
在这里插入图片描述

滑动加载数据,在js代码中是固定的函数名 onReachBottom

      // 当滑动到底部还有100rpx时,就会触发这个函数执行---》发送请求获取数据onReachBottom() {console.log('下拉了')// 发送请求获取数据wx.request({url: 'http://127.0.0.1:8000/random',method:'GET',success:(res)=>{this.setData({good_list:this.data.good_list.concat(res.data)})}})},

django后端代码:
###url###
在这里插入图片描述

###视图###

import randomdef random_view(request):l = []for i in range(3):l.append(random.randint(0, 99999))return JsonResponse(l,safe=False)  # 返回json格式,如果里面有列表,必须加safe=False

后端运行
在这里插入图片描述

小程序上拉,显示更多数据
在这里插入图片描述

在这里插入图片描述

2.下拉刷新

上面我们讲到了下拉加载更多数据,如果我们想恢复到最初的默认怎么办,此时就用到了下拉刷新

###json中配置###

{"usingComponents": {},"onReachBottomDistance": 100,"enablePullDownRefresh": true,"backgroundColor": "#efefef","backgroundTextStyle":"dark"
}

在这里插入图片描述

###wxml ###

<view wx:for="{{good_list}}" wx:key="*this">{{item}}</view>

###js ###

// 下拉刷新-
onPullDownRefresh(){console.log('下拉了,刷新')// 只要下来,把数据恢复this.setData({good_list:[1,2,3]})// 下拉刷新后,loading效果回弹if(this.data.good_list.length==3){wx.stopPullDownRefresh()}
}

在这里插入图片描述

3.scroll-view实现上拉加载更多,下拉刷新

我们再新建个页面
在这里插入图片描述

重新建个tarbar
在这里插入图片描述

#####wxml####

<scroll-view 
class="scroll"
scroll-y  # 运行y轴滑动
lower-threshold="100" # 距离底部还有100px时,触发事件
bindscrolltolower="handleGetData"# 事件处理函数refresher-enabled="true"        # 开启 下拉刷新
refresher-default-style="black" # 下拉默认样式
refresher-background="#f0f0f0"  # 下拉背景色
bindrefresherrefresh="handleReload" # 下拉触发事件
refresher-triggered="{{isRefresh}}" # 设置下拉回弹,false允许回弹,enable-back-to-top="true"  # 快速回到顶部,ios点顶部,安卓点tab
><view wx:for="{{goods}}" wx:key="index">{{item}}</view>
</scroll-view>

在这里插入图片描述

###wxss###

.scroll{/* 100vh就是指元素的高度等于当前浏览器的视窗高度,即浏览器内部的可视区域的高度大小 */height: 100vh; background-color: grey;
}view{height: 400rpx;display: flex;justify-content: center;align-items: center;
}
/* 奇数 */
view:nth-child(odd){background-color: pink;
}
/* 偶数 */
view:nth-child(even){background-color: green;
}

在这里插入图片描述

效果:
下拉刷新
在这里插入图片描述

上拉加载更多
在这里插入图片描述

相关文章:

  • 最新的ffmepg.js前端VUE3实现视频、音频裁剪上传功能
  • FileZilla:不安全的服务器,不支持 FTP over TLS 原因与解决方法
  • 浅谈一下实例化
  • C++期末复习
  • nvm,node不是内部命令,npm版本不支持问题(曾经安装过nodejs)
  • Python报错:AttributeError: <unknown>.DeliveryStore 获取Outlook邮箱时报错
  • MySQL 高级 - 第十一章 | 索引优化与查询优化
  • 力扣 74.搜索二维矩阵
  • vue 将图片url转base64
  • 优化财务管理制度提升企业经营效益—以审计代理记账为例
  • JWT及单点登录实现
  • window.setInterval(func,interval)定时器
  • Java | Leetcode Java题解之第137题只出现一次的数字II
  • 高质量 HarmonyOS 权限管控流程
  • 尝试使用blazor(二)Blazor WebAssembly(WASM)与Server之间有什么区别?
  • 【EOS】Cleos基础
  • Git学习与使用心得(1)—— 初始化
  • HTTP那些事
  • Java到底能干嘛?
  • 从零开始的无人驾驶 1
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 离散点最小(凸)包围边界查找
  • 思考 CSS 架构
  • 我这样减少了26.5M Java内存!
  • 详解移动APP与web APP的区别
  • 新版博客前端前瞻
  • 用mpvue开发微信小程序
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #NOIP 2014#Day.2 T3 解方程
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (poj1.2.1)1970(筛选法模拟)
  • (windows2012共享文件夹和防火墙设置
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (四)软件性能测试
  • (小白学Java)Java简介和基本配置
  • (学习总结16)C++模版2
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转载)(官方)UE4--图像编程----着色器开发
  • .dwp和.webpart的区别
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .Net IOC框架入门之一 Unity
  • .NET 反射 Reflect
  • .net 获取某一天 在当月是 第几周 函数
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @JSONField或@JsonProperty注解使用
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [1]-基于图搜索的路径规划基础