微信小程序--开启下拉刷新页面

1、下拉刷新获取数据enablePullDownRefresh

开启下拉刷新:

enablePullDownRefreshbooleanfalse是否开启当前页面下拉刷新

案例: 

 下拉刷新,获取新的列表数据,其实就是进行一次新的网络请求:

第一步:在.json文件中开启下拉刷新

{"usingComponents": {},"enablePullDownRefresh":true,"backgroundColor": "#6D9AD6"}

第二步:在.js配置文件中找到下拉刷新处理函数:

// pages/wxRequest/wxRequest.js
Page({/*** 页面的初始数据*/data: {listArr:[]},/*** 生命周期函数--监听页面加载*/onLoad(options) {this.getData();},getData(){wx.showLoading({title: '网络加载中...',mask:true//遮罩层,防止用户误触})wx.request({url: 'https://api.thecatapi.com/v1/images/search?limit=2',success:res=>{console.log(res)this.setData({listArr:res.data})//当网络请求完成后,我们要自动的把下拉刷新的样式关闭掉,要不然不好看:wx.stopPullDownRefresh() },complete:res=>{//无论网络请求是否成功,都要关闭loading样式:wx.hideLoading()}})},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh() {this.setData({//细节:其实我们下拉刷新后,应该先把页面清空,再获取新的数据://只不过页面清空效果很快,肉眼看不太出来listArr:[]  })this.getData();},

细节一:当网络请求完成后,我们要自动的把下拉刷新的样式关闭掉,要不然不好看:

  • wx.stopPullDownRefresh(Object object):停止当前页面下拉刷新;
  • wx.startPullDownRefresh(Object object):开始下拉刷新。调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。
   /*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh() {//细节:其实我们下拉刷新后,应该先把页面清空,再获取新的数据://只不过页面清空效果很快,肉眼看不太出来this.setData({listArr:[]  })this.getData();},

细节二:在页面加载完毕前,应该添加一个wx.showLoading()提示用户正在加载,网络请求完成后,就关闭这个加载动作

                                

  getData(){wx.showLoading({title: '网络加载中...',mask:true//遮罩层,防止用户误触})wx.request({url: 'https://api.thecatapi.com/v1/images/search?limit=2',success:res=>{console.log(res)this.setData({listArr:res.data})//当网络请求完成后,我们要自动的把下拉刷新的样式关闭掉,要不然不好看:wx.stopPullDownRefresh() //当网络请求完成后,还要关闭loading样式:wx.hideLoading()}})},

 细节三:如果网络请求失败呢?例如接口失效:

successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
getData(){wx.showLoading({title: '网络加载中...',mask:true//遮罩层,防止用户误触})wx.request({url: 'https://api.thecatapi.com/v1/images/search?limit=2',success:res=>{console.log(res)this.setData({listArr:res.data})//当网络请求完成后,我们要自动的把下拉刷新的样式关闭掉,要不然不好看:wx.stopPullDownRefresh() },complete:res=>{//无论网络请求是否成功,都要关闭loading样式:wx.hideLoading()}})},

2、触底加载更多的数据onReachBottom

在json文件中配置:

{"usingComponents": {},"enablePullDownRefresh":true,"backgroundColor": "#6EB66E","navigationStyle":"custom" ,"onReachBottomDistance":200
}
  • 距离底部多少的时候触发我们的触底事件 默认是50px 
  • 触底加载更多的数据通常与这个api联合使用:导航栏有加载中的小圆圈wx.showNavigationBarLoading(Object object)
  • 在js中找到触底事件对应的处理函数:
 /*** 页面上拉触底事件的处理函数*/onReachBottom() {},
// pages/wxRequest/wxRequest.js
Page({/*** 页面的初始数据*/data: {listArr:[]},/*** 生命周期函数--监听页面加载*/onLoad(options) {wx.showLoading({title: '网络加载中...',mask:true//遮罩层,防止用户误触})this.getData();},getData(){wx.request({url: 'https://api.thecatapi.com/v1/images/search?limit=2',success:res=>{let oldArr = this.data.listArr;let newArr = oldArr.concat(res.data)//调用concat()方法进行数组的拼接console.log(res)this.setData({listArr:newArr})//当网络请求完成后,我们要自动的把下拉刷新的样式关闭掉,要不然不好看:wx.stopPullDownRefresh() },complete:res=>{//无论网络请求是否成功,都要关闭loading样式:wx.hideLoading()wx.hideNavigationBarLoading()}})},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh() {this.setData({//细节:其实我们下拉刷新后,应该先把页面清空,再获取新的数据://只不过页面清空效果很快,肉眼看不太出来listArr:[]  })this.getData();},/*** 页面上拉触底事件的处理函数*/onReachBottom() {console.log("触底啦");wx.showNavigationBarLoading();this.getData();
},

res.data是网络请求完成后获取到的数组: 

          let oldArr = this.data.listArr;
          let newArr = oldArr.concat(res.data)//调用concat()方法进行数组的拼接
                    console.log(res)
                    this.setData({
                    listArr:newArr
            })

 3、wx.request的其他参数:

wx.request(Object object),默认是get请求

  /*** 生命周期函数--监听页面加载*/onLoad(options) {this.getData();},getData(){wx.request({url:"https://api.thecatapi.com/v1/images/search",method:"get",data:{limit:2 //如果是字符串就要写上双引号},success:res=>{console.log(res);}})},

 post请求:

  onLoad(options) {this.getData();},getData(){wx.request({url:"http://jsonplaceholder.typicode.com/posts",header:{"content-type":"application/json","token":123456},method:"post",data:{name:"zhangfei飞",age:18},success:res=>{console.log(res);}})},

                                         

案例1:POST请求获取
  • 接口URL:POST    https://tea.qingnian8.com/demoArt/get
  • Content-Type:  application/json

                                 

wxml:


<view class="out"><veiw class="from"><input type= "text" model:value="{{iptValue}}" placeholder="请输入用户名" bindconfirm="onSubmit"/> <!--bindconfirm:回车触发此事件--></veiw><view class="row" wx:for="{{listArr}}" wx:key="_id"><view class="username">用户名:{{item.title}}</view><view class="time">时间:{{item.posttime}}</view></view></view>

wxss:

.out{padding:30rpx;border: red solid 9rpx;
}
.out .row{padding:15rpx;border-bottom: 2px solid #ccc;
}

 .js:

Page({/*** 页面的初始数据*/data: {iptValue:""},onSubmit(){console.log(this.data.iptValue);},/*** 生命周期函数--监听页面加载*/onLoad(options) {this.getData();},getData(){wx.request({url:" https://tea.qingnian8.com/demoArt/get",method:"POST",header:{"Content-Type":"application/json"},data:{num:3,page:1},success:res=>{console.log(res);}})},

案例2: POST 请求新增
  • 接口URL:POST        https://tea.qingnian8.com/demoArt/add
  • Content-Type:           application/json

                 

.js:

Page({/*** 页面的初始数据*/data: {iptValue:"",listArr:[]},onSubmit(){console.log(this.data.iptValue);wx.request({url:"https://tea.qingnian8.com/demoArt/add",method:"POST",header:{"Content-Type":"application/json"},data:{title:this.data.iptValue //插入的数据},success:res=>{console.log(res);if(res.data.errCode!=0){return; //如果插入数据失败,会直接返回}this.setData({iptValue:""//清空输入框})this.getData();//重新发起请求获取数据wx.showToast({title: res.data.errMsg })}})},/*** 生命周期函数--监听页面加载*/onLoad(options) {this.getData();},getData(){wx.request({url:" https://tea.qingnian8.com/demoArt/get",method:"POST",header:{"Content-Type":"application/json"},data:{num:3,//取三条数据page:1},success:res=>{console.log(res);this.setData({listArr:res.data.data})}})},

wxml:

<view class="out"><veiw class="from"><input type= "text" model:value="{{iptValue}}" placeholder="请输入用户名" bindconfirm="onSubmit" style="padding: 20rpx;background:#eee;margin-bottom: 20rpx;"/> <!--bindconfirm:回车触发此事件--></veiw><view class="row" wx:for="{{listArr}}" wx:key="_id"><view class="username">用户名:{{item.title}}</view><view class="time">时间:{{item.posttime}}</view></view></view>

wxss: 

.out{padding:30rpx;border: red solid 9rpx;
}
.out .row{padding:15rpx;border-bottom: 2px solid #ccc;
}

4、自定义组件Component

        新建文件夹componens->新建文件夹Myheader->新建Component

        注意:组件和pages同级:

        ​​​​​​​                ​​​​​​​        ​​​​​​​

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

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

相关文章

【论文阅读】ACM MM 2023 PatchBackdoor:不修改模型的深度神经网络后门攻击

文章目录 一.论文信息二.论文内容1.摘要2.引言3.作者贡献4.主要图表5.结论 一.论文信息 论文题目&#xff1a; PatchBackdoor: Backdoor Attack against Deep Neural Networks without Model Modification&#xff08;PatchBackdoor:不修改模型的深度神经网络后门攻击&#xf…

DDR协议基础进阶(三)——(基本功能、初始化、MR寄存器)

DDR协议基础进阶&#xff08;三&#xff09;——&#xff08;基本功能、初始化、MR寄存器&#xff09; 一、DDR基本功能 DDR基本功能主要包括&#xff1a; 8-bit prefetch预取——8-bit&#xff0c;是指8位数据&#xff0c;即8倍芯片位宽的数据。由于DDR内部数据传输是32bit…

大型政企迈向数智化深水区,如何保障安全用云?

文&#xff5c;白 鸽 编&#xff5c;王一粟 在这个千行万业加速智能升级的时代&#xff0c;我们应该如何保证数字安全&#xff1f; 一方面&#xff0c;AI技术快速发展给当下带来一系列新型挑战&#xff1a;自动化攻击、深度伪造、隐私侵犯、数据安全等等。另一方面&#…

群晖NAS使用Docker安装WPS Office并结合内网穿透实现公网远程办公

文章目录 推荐1. 拉取WPS Office镜像2. 运行WPS Office镜像容器3. 本地访问WPS Office4. 群晖安装Cpolar5. 配置WPS Office远程地址6. 远程访问WPS Office小结 7. 固定公网地址 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff…

【C++庖丁解牛】vector容器的简易模拟实现(C++实现)(最后附源码)

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 前言vector容器代码实现内…

stm32-定时器输入捕获

目录 一、输入捕获简介 二、输入捕获框图 1.定时器总框图 2.输入捕获框图 3.主从触发模式 三、固件库实现 1.定时器测量PWM频率 2.PWMI模式 一、输入捕获简介 二、输入捕获框图 1.定时器总框图 上图可知&#xff0c;四个输入捕获和输出比较共用4个CCR寄存器&#x…

lftp服务与http服务(包含scp服务)详解

目录 前言: 1.lftp服务 1.1lftp服务的介绍以及应用场景 1.2安装lftp服务 1.2进行配置 1.3实际操作 2.http服务 2.1http服务介绍以及应用场景 2.1安装httpd服务 2.2进行配置 2.3实际操作 3.scp服务 3.1scp服务的介绍以及应用场景 致谢: 前言: 在当今互联网…

Seata 2.x 系列【12】高可用集群部署

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Seata 版本 2.0.0 本系列Spring Boot 版本 3.2.0 本系列Spring Cloud 版本 2023.0.0 源码地址&#xff1a;https://gitee.com/pearl-organization/study-seata-demo 文章目录 1. 概述2. 搭建演…

Unity AI Navigation插件快速使用方法

AI Navigation插件使您能够创建能够在游戏世界中智能移动的角色。这些角色利用的是根据场景几何结构自动生成的导航网格。障碍物可以让您在运行时改变角色的导航路径。 演示使用的Unity版本为Tuanjie 1.0.0,团结引擎是Unity中国的引擎研发团队基于Unity 2022 LTS版本为中国开发…

java学习之路-程序逻辑控制

目录 1.分支结构 1.1 if语句 栗子 判断奇数还是偶数 判断一个年份是否为闰年 1.2switch语句 栗子 2. 循环结构 2.1while 循环 栗子 2.2break和continue break continue 2.3for循环 基本语法 栗子 2.4 do while 循环 3.输入输出 3.1输出 3.2从键盘输入 栗子…

DayDreamInGIS 之 ArcGIS Pro二次开发 锐角检查

功能&#xff1a;检查图斑中所有的夹角&#xff0c;如果为锐角&#xff0c;在单独的标记图层中标记。生成的结果放在默认gdb中&#xff0c;以 图层名_锐角检查 的方式命名 大体实现方式&#xff1a;遍历图层中的所有要素&#xff08;多部件要素分别处理&#xff09;&#xff0…

【SQL Server】实验七 数据完整性

1 实验目的 掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。掌握完整性约束的运行检查机制。掌握参照完整性的级联删除和修改方法。掌握正确设计关系模式完整性约束的方法。 2 实验内容 2.1 掌握实体完整性约束的创建和使用方法 创建表时定义由一个属性组成…

最好用的流程编辑器bpmn-js系列之基本使用

BPMN&#xff08;Business Process Modeling Notation&#xff09;是由业务流程管理倡议组织BPMI&#xff08;The Business Process Management Initiative&#xff09;开发的一套标准的业务流程建模符号规范。其目的是为用户提供一套容易理解的标准符号&#xff0c;这些符号作…

C++笔记:从零开始一步步手撕高阶数据结构AVL树

文章目录 高度平衡二叉搜索树实现一颗AVL树结点与树的描述——定义类AVL树的插入操作步骤1&#xff1a;按照二叉搜索树的方法插入结点步骤2&#xff1a;自底向上调整平衡因子步骤3&#xff1a;触发旋转操作&#xff08;AVL树平衡的精髓&#xff09;右单旋左单旋左右双旋右左双旋…

基于openresty构建运维工具链实践

本文字数&#xff1a;4591字 预计阅读时间&#xff1a;25 01 导读 如今OpenResty已广泛被各个互联网公司在实际生产环境中应用&#xff0c;在保留Nginx高并发、高稳定等特性基础上&#xff0c;通过嵌入Lua来提升在负载均衡层的开发效率并保证其高性能。本文主要介绍接口鉴权、流…

Spring Cloud Alibab 入门搭建,包含Nacos中心,注册服务发现服务,Feign请求,GateWay网关,sentinel限流

源码在最后 一、安装Nacos注册中心 1.1查看Nacos官网&#xff0c;安装Nacos服务&#xff0c;下载源码或者安装包 1.2启动服务&#xff0c;默认端口为8848&#xff0c; 二、创建服务注册&发现 2.1使用脚手架&#xff0c;创建注册服务和发现服务项目&#xff0c;我用的版…

.NET开源快速、强大、免费的电子表格组件

今天大姚给大家分享一个.NET开源&#xff08;MIT License&#xff09;、快速、强大、免费的电子表格组件&#xff0c;支持数据格式、冻结、大纲、公式计算、图表、脚本执行等。兼容 Excel 2007 (.xlsx) 格式&#xff0c;支持WinForm、WPF和Android平台&#xff1a;ReoGrid。 项…

【机器学习300问】34、决策树对于数值型特征如果确定阈值?

还是用之前的猫狗二分类任务举例&#xff08;这个例子出现在【机器学习300问】第33问中&#xff09;&#xff0c;我们新增一个数值型特征&#xff08;体重&#xff09;&#xff0c;下表是数据集的详情。如果想了解更多决策树的知识可以看看我之前的两篇文章&#xff1a; 【机器…

Linux从0到1——Linux第一个小程序:进度条

Linux从0到1——Linux第一个小程序&#xff1a;进度条 1. 输出缓冲区2. 回车和换行的本质3. 实现进度条3.1 简单原理版本3.2 实际工程版本 1. 输出缓冲区 1. 小实验&#xff1a; 编写一个test.c文件&#xff0c;&#xff1a; #include <stdio.h> #include <unistd.h…

详解命令docker run -d --name container_name -e TZ=Asia/Shanghai your_image

docker run 是Docker的主要命令&#xff0c;用于从镜像启动一个新的容器。下面详细解释并举例说明 -d, --name, -e TZ 参数的用法&#xff1a; -d 或 --detach&#xff1a; 这个标志告诉Docker以守护进程&#xff08;后台&#xff09;模式运行容器。这意味着当你执行 docker ru…