微信小程序开发学习笔记《12》下拉刷新事件

微信小程序开发学习笔记《12》下拉刷新事件

博主正在学习微信小程序开发,希望记录自己学习过程同时与广大网友共同学习讨论。建议仔细阅读官方文档

一、什么是下拉刷新

下拉刷新是移动端的专有名词,指的是通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为。

1.1 启用下拉刷新

在我笔记7中已经提及过如何使用下拉刷新,值得注意的时,尽量不要在全局启用下拉刷新,如果某个页面有这个需求的话,在局部设置即可。
配置

1.2 监听页面的下拉刷新事件

在页面的.js文件中,通过onPullDownRefresh()函数即可监听当前页面的下拉刷新事件。

  1. 需要在app.json的window选项中或页面配置中开启enablePullDownRefresh。
  2. 可以通过wx.startPullDownRefresh触发下拉刷新,调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。
  3. 当处理完数据刷新后,wx.stopPullDownRefresh可以停止当前页面的下拉刷新

微信官方文档:
在这里插入图片描述

具体代码,在需要开启的页面js文件找到onPullDownRefresh()函数:
在这里插入图片描述

监听下拉事件示例:
假设页面ui中有一个button绑定了一个点击事件,点击按钮会使数值+1,我通过监听页面下拉事件让ui这个button每次下拉刷新之后就会重置次数.

代码:

// 页面wxml代码
<button bind:tap="djcs">点击次数{{count}}</button>

//页面.js page下代码

data: {
    count:0 // 定义点击次数变量
  },
  
djcs(){
    this.setData({
        count:this.data.count+1 //定义点击按钮自增1
    })
},

onPullDownRefresh() {
   console.log("触发了“我的”页面下拉动作"),
   this.setData({
       count: 0  //监听下拉页面动作,更新次数为0
   })
 }

这样当我们一刷新时,按钮的点击次数就会重置为0了。
注意:代码写好,需要点击重新编译才能生效

1.3 停止下拉刷新的效果

当处理完下拉刷新后,下拉刷新的loading效果会一直显示,不会主动消失,所以需要手动停止loading 效果。此时,调用***wx.stopPullDownRefresh()***可以停止当前页面的下拉刷新。

代码:

onPullDownRefresh() {
    console.log("触发了“我的”页面下拉动作"),
    this.setData({
        count: 0
    }),
    wx.stopPullDownRefresh()   //添加此句代码,令其停止下拉刷新,建议使用真机,模拟机效果不好
  },

二、什么是上拉触底

上拉触底是移动端的专有名词,通过手指在屏幕上的上拉滑动操作,从而加载更多数据的行为。通常是分页用,加载下一页数据。(上拉触底其实应该就是上拉至达到当前页面的最底部了。。)

2.1 监听页面上拉触底事件

在页面的.js文件中,通过onReachBottom()函数即可监听当前页面的上拉触底事件。示例代码如下:

   // 页面上拉触底事件的处理函数
  onReachBottom() {
    console.log("到达到页面底部了")
  },

效果如下:
在这里插入图片描述
这个上拉触底事件处理函数,在这会反复触发,如果上拉触底是为了请求更多数据,当数据还没从后端传来前端加载时,反复触发发送请求是不应该的。所以需要做一下节流处理,防止频繁请求。

2.2 配置上拉触底距离

上拉触底距离指的是**触发上拉触底事件时,滚动条距离页面底部的距离。**这部分内容我在之前的笔记7中有所提及。这个距离通俗来说,就是上拉到距离最底部多少触发上拉触底。

上拉触底距离默认为50像素,即当我们上拉距离50像素就到达页面最底部时,就已经触发上拉触底,而不是真正到最底部。

可以在全局或页面的.json配置文件中,通过onReachBottomDistance属性来配置上拉触底的距离。
如下图,我在对应页面json文件中设置其上拉触底距离为100,注意不需要加单位:
在这里插入图片描述


以上学习笔记都是博主在B站学习黑马程序员课程时的学习笔记,如果有什么问题,烦请联系我删除。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年前端最新面试题-vue3(持续更新中)

文章目录 前言正文什么是 MVVC什么是 MVVM什么是 SPA什么是SFC为什么 data 选项是一个函数Vue 组件通讯&#xff08;传值&#xff09;有哪些方式Vue 的生命周期方法有哪些如何理解 Vue 的单项数据流如何理解 Vue 的双向数据绑定Vue3的响应式原理是什么介绍一下 Vue 的虚拟 DOM介…

opencv-4.8.0编译及使用

1 编译 opencv的编译总体来说比较简单&#xff0c;但必须记住一点&#xff1a;opencv的版本必须和opencv_contrib的版本保持一致。例如opencv使用4.8.0&#xff0c;opencv_contrib也必须使用4.8.0。 进入opencv和opencv_contrib的github页面后&#xff0c;默认看到的是git分支&…

【机器学习前置知识】狄利克雷分布

在阅读本文前&#xff0c;建议先食用以下几篇文章以能更好地理解狄利克雷分布&#xff1a; 二项分布 Beta分布 多项分布 共轭分布 狄利克雷分布 狄利克雷分布(Dirichlet distribution)是Beta分布的扩展&#xff0c;把Beta分布从二元扩展到多元形式就是狄利克雷分布&#…

jar包部署到linux虚拟机的docker中之后连不上mysql

前言&#xff1a; 跟着黑马学习docker的时候&#xff0c;将java项目部署到了docker中&#xff0c;运行访问报错&#xff0c;反馈连不上mysql。 错误描述&#xff1a; 方法解决&#xff1a; 概述&#xff1a;在虚拟中中&#xff0c;我进入项目容器的内部&#xff0c;尝试ping…

myql进阶-一条查询sql在mysql的执行过程

目录 1. 流程图 2. 各个过程 2.1 连接器 2.2 分析器 2.3 优化器 2.4 执行器 2.5 注意点 1. 流程图 2. 各个过程 假设我们执行一条sql语句如下&#xff1a; select * from t_good where good_id 1 2.1 连接器 首先我们会和mysql建立连接&#xff0c;此时就会执行到连接…

#mysql 8.0 踩坑日记

事情发生在&#xff0c;修改一个已有功能的时候&#xff0c;正常的参数传递进去接口异常了。查看日志报的 Column date cannot be null 。因为是一直未修改过的功能&#xff0c;首先排除了程序代码问题&#xff0c;首先想到是不是升级过程序的jar包版本&#xff0c;检查下来发…

vivado 使用源文件

使用源文件 概述 源文件包括从AMD IP添加的设计源、知识产权&#xff08;IP&#xff09;源目录、RTL设计源、从系统添加的数字信号处理&#xff08;DSP&#xff09;源生成器工具和IP子系统&#xff0c;也称为块设计&#xff0c;由IP集成商创建AMD Vivado的功能™ 设计套件。源…

FreeRTOS系统配置

一、前言 在实际使用FreeRTOS 的时候我们时常需要根据自己需求来配置FreeRTOS&#xff0c;而且不同架构 的MCU在使用的时候配置也不同。FreeRTOS的系统配置文件为FreeRTOSConfig.h&#xff0c;在此配置文件中可以完成FreeRTOS的裁剪和配置&#xff0c;这是非常重要的一个文件&a…

年终关账四大财务处理技巧|柯桥会计做账,财税知识

2023年即将落下帷幕&#xff0c;无数公司最忙碌就是“年终关账“这件事了。 “年终关账”不仅是企业内部结算一年经营结果的事&#xff0c;还与企业所得税汇算清缴息息相关&#xff0c;甚至还可能关乎企业税负高低与企业是否依法纳税&#xff0c;千万不可小觑。 同时&#xff0…

K8S存储卷和数据卷

目录 三种存储方式 查看同一容器不同副本的log emptyDir ​编辑 hostPath NFS共享存储 PVC和PV Pv和pvc之间是有生命周期管理的 Pv的状态有四种 支持的读写方式有几种 回收策略 资源回收 容器内的目录和宿主机的目录进行挂载 容器在系统上的生命周期是短暂的&#xff0…

Rust-变量

Rust的变量必须先声明后使用。对于局部变量&#xff0c;最常见的声明语法为&#xff1a; let variable:i32 100;与传统的C/C语言相比&#xff0c;Rust的变量声明语法不同。这样设计主要有以下几个方面的考虑。 语法分析更容易 从语法分析的角度来说&#xff0c;Rust的变量声明…

uniapp 实战 -- 创建 uni-admin 项目,部署到 uniCloud 前端网页托管(免费云空间)

创建 uni-admin 项目 可见 只能创建一个超级管理员&#xff0c;创建过后&#xff0c;登录页将不再显示 注册管理员账号 部署到 uniCloud 前端网页托管 部署成功&#xff0c;访问地址可预览效果&#xff01; https://static-mp-7b65169e-151f-4fbb-a5ba-2125d4f56e3f.next.bs…

ES的索引库操作

索引库操作 索引库就类似数据库表&#xff0c;mapping映射就类似表的结构。 我们要向es中存储数据&#xff0c;必须先创建“库”和“表”。 1.mapping映射属性 mapping是对索引库中文档的约束&#xff0c;常见的mapping属性包括&#xff1a; type&#xff1a;字段数据类型&a…

面试宝典之JVM优化

J01、类加载的几个过程&#xff1f; 加载、验证、准备、解析、初始化。然后是使用和卸载了 J02、Minor GC 与 Full GC 分别在什么时候发生&#xff1f; 新生代内存不够用时候发生 MGC 也叫 YGC&#xff0c;JVM 内存不够的时候发生 FGC J03、java 中垃圾收集的方法有哪些? …

navicat for oracle

前言 Oracle中的概念并不是创建数据库&#xff0c;而是创建一个表空间&#xff0c;然后再创建一个用户&#xff0c;设置该用户的默认表空间为我们新创建的表空间&#xff0c;这些操作之后&#xff0c;便和你之前用过的mysql数据库创建完数据库一模一样了。 创建数据库 使用O…

C++20结构化绑定应用实例(二百五十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

微信订阅号 服务号区别

服务号和订阅号有什么区别&#xff1f;服务号转为订阅号有哪些作用&#xff1f;很多小伙伴想把服务号改为订阅号&#xff0c;但是不知道改了之后具体有什么作用&#xff0c;今天跟大家具体讲解一下。首先我们知道服务号一个月只能发四次文章&#xff0c;但是订阅号每天都可以发…

瑞吉外卖笔记系列(2) —— 完善员工的后台系统登录功能,实现员工信息管理

本文档主要 完善员工的后台系统登录功能&#xff0c;新增员工&#xff0c;员工信息分页查询&#xff0c;启用/禁用员工账号&#xff0c;编辑员工信息 一、完善后台系统登录功能 1.1 问题分析 目前存在的问题是&#xff1a;理论上&#xff0c;用户必须在 http://localhost:808…

宽度优先搜索算法(BFS)详解(超级详细讲解,附有大图)

目录 一.宽度优先搜索&#xff08;BFS&#xff09;是什么&#xff1f; 二.图解宽搜&#xff08;BFS&#xff09; 三.对比与发现 四。工具——队列 五.模板 六.最后 一.宽度优先搜索&#xff08;BFS&#xff09;是什么&#xff1f; 百度百科这样说&#xff1a; 宽度优先搜索…

蓝桥杯省赛无忧 STL 课件15 queue

01 queue队列 02 priority_queue优先队列 接下来介绍几种优先队列修改比较函数的方法 03 deque双端队列 04 例题讲解 https://www.lanqiao.cn/problems/1113/learning/?page1&first_category_id1&problem_id1113输入 5 IN xiaoming N IN Adel V IN laozhao N OUT …