小程序开发-第三章第二节下拉刷新,上拉加载-全栈工程师之路-中级篇

简介: 小程序开发-第三章第二节下拉刷新,上拉加载-全栈工程师之路-中级篇

今天就直入主题吧!

调试技巧

这里讲一个调试的技巧,因为这个页面是我们点击了首页的更多才进入的,并且他需要携带参数。
所以我们在左侧工具里面

image.png


注意点击的是图中红色框框标记的位置,这是一个自定义按钮。

image.png


写上路劲和参数就可以了,这样每次启动就是直接携带参数的进入这个页面了。这样也不用反复去修改json文件。


上拉加载

首先我们先编写一下moviemore的页面。
在头部引入搜索按钮,记得在wxss中也要引入搜索按钮的样式。
然后编写一个view,样式属性设置display: flex;flex-direction: row;flex-wrap:wrap;按行排列,超出换行。
moviemore.wxml如下:

<!--pages/moviemore/moviemore.wxml--> 
<import src="../public/tpl/moviecard.wxml" /> 
<import src="../public/tpl/searchBtn.wxml" /> 
<view class="Container"> 
<template is="searchBtnTpl"></template> 
<view class="movielist"> 
<block wx:for="{{movieList.subjects}}" wx:key="item"> 
<template is="moviecardTpl" data="{{...item}}"></template> 
</block> 
</view> 
</view>

以上内容都是我们之前讲解过得,你都可以从其他文件中拷贝过来,一部分来自index一部分来自movielist。
我们上一节课已经在moviemore.js中取到了请求的url。
所以我们还是在onload函数中,发起页面初始数据的请求。

image.png


这里我们查看豆瓣API,可以得知他们是使用start和count来实现分页数据的。
一般比较常用的接口是page和rows管理页码和每页条数。
因为我们还要上拉加载更多数据,所以,请求的url和请求的参量应该是一个共有变量。
所以我们在page的data里面也设置了url、count和start。

/** 
* 页面的初始数据 
*/ 
data: { 
movieList:[], 
count:12, 
start:0, 
url:'' 
}, 
moviemore.js中的onload函数 
/** 
* 生命周期函数--监听页面加载 
*/ 
onLoad: function (options) { 
console.log(options) 
var that = this; 
util.getMovieList(options.url, "查看更多", { start: that.data.start,count: that.data.count }).then((movieList) => { 
that.setData({ 
movieList: util.movieDataFactory(movieList), 
url:options.url, 
start: that.data.start + that.data.count 
}); 
}) 
},


这里第一次用到的count是初始的数据12,start是初始数据0。然后发起之后重设了start值。


保存刷新

image.png


我们看到了界面是我们想要的效果了,但是注意看标题并不是我们想要的。
我们之前讲过了设置标题是在json文件的windows属性里面的。
我们的子页面也有一个自己的json,用于设置只用于当前页面的一些配置项。
但是我们这个查看更多页面,应该要根据不同的请求接口显示,不同的标题,这个标题参数一般是从服务端获取的。
根据我们的需求,这个标题只需要设置一次,所以我们在onload函数,请求的回调中,加入

wx.setNavigationBarTitle({ 
title: "查看更多" 
})


接着我们来编写加载更多数据的逻辑。
我们先在页面上拉触底事件的处理函数中加入打印,如果你没有这个函数,自己加上去就好了,注意这个函数和onload函数是同级的属性。

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

保存,滚动页面,右侧滑块到底的时候会触发上面的函数,可以在控制台中查看打印。

/** 
* 页面上拉触底事件的处理函数 
*/ 
onReachBottom: function () { 
console.log("到达底部咯") 
if(this.data.url === ''){ 
return ; 
} 
var that = this; 
util.getMovieList(this.data.url, "查看更多", { start: that.data.start,count: this.data.count }).then((movieList) => { 
// 注意这里我们的数据结构是这样子的 
// var data = { 
// url:'', 
// title:'', 
// subjects:[] 
// } 
// 所以我们要增加的是subjects数组,使用concat函数 
var newdata = util.movieDataFactory(movieList); 
var olddata = that.data.movieList; 
olddata.subjects = olddata.subjects.concat(newdata.subjects) 
that.setData({ 
movieList: olddata , 
start: that.data.start + that.data.count 
}); 
}) 
},


这里要根据不同的接口文档设计的数据结构,重写这个逻辑。
如果你发现一直不对,那就一步一步的断点查看数据。
建议是一步一步的打印数据,这样在控制台,可以展开查看每个数据项,
可以比对一下数据,比目测的要好一点,还不费脑子。
保存。我们的上拉加载功能就实现了。


下拉刷新

下拉刷新其实比加载要容易,只要把数据都设置成初始数据,再发起一次请求就可以了。
但是下拉刷新要在界面中开启功能才会有效。
步骤1:在json文件中设置

{ 
"enablePullDownRefresh":true 
}

步骤2:在onPullDownRefresh函数中,编写用户下拉动作逻辑
步骤3:在数据刷新完毕之后要手动调用wx.stopPullDownRefresh();停止当前的页面刷新动作。

/** 
* 页面相关事件处理函数--监听用户下拉动作 
*/ 
onPullDownRefresh: function () { 
console.log("用户下拉动作") 
if (this.data.url === '') { 
return; 
} 
var that = this; 
util.getMovieList(this.data.url, "查看更多", { start: 0, count: that.data.count }).then((movieList) => { 
that.setData({ 
movieList: util.movieDataFactory(movieList), 
start: that.data.count 
}); 
wx.stopPullDownRefresh(); 
}) 
},


保存。

这节课的内容就到这里结束了。
感谢您的阅读。
我是莽夫,希望你开心。

目录
相关文章
|
17天前
|
人工智能 小程序
【一步步开发AI运动小程序】十五、AI运动识别中,如何判断人体站位的远近?
【云智AI运动识别小程序插件】提供人体、运动及姿态检测的AI能力,无需后台支持,具有快速、体验好、易集成等特点。本文介绍如何利用插件判断人体与摄像头的远近,确保人体图像在帧内的比例适中,以优化识别效果。通过`whole`检测规则,分别实现人体过近和过远的判断,并给出相应示例代码。
|
11天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十七、如何识别用户上传视频中的人体、运动、动作、姿态?
【云智AI运动识别小程序插件】提供人体、运动、姿态检测的AI能力,支持本地原生识别,无需后台服务,具有速度快、体验好、易集成等优点。本文介绍如何使用该插件实现用户上传视频的运动识别,包括视频解码抽帧和人体识别的实现方法。
|
16天前
|
人工智能 小程序 UED
【一步步开发AI运动小程序】十六、AI运动识别中,如何判断人体站位?
【云智AI运动识别小程序插件】提供人体、运动及姿态检测的AI能力,本地引擎无需后台支持,具备快速、体验好、易集成等优势。本文介绍如何利用插件的`camera-view`功能,通过检测人体站位视角(前、后、左、右),确保运动时的最佳识别率和用户体验。代码示例展示了如何实现视角检查,确保用户正或背对摄像头,为后续运动检测打下基础。
|
22天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十三、自定义一个运动分析器,实现计时计数02
本文介绍如何利用“云智AI运动识别小程序插件”开发AI运动小程序,详细解析了俯卧撑动作的检测规则构建与执行流程,涵盖卧撑和撑卧两个姿态的识别规则,以及如何通过继承`sports.SportBase`类实现运动分析器,适用于小程序开发者。
|
22天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十二、自定义一个运动分析器,实现计时计数01
随着AI技术的发展,AI运动APP如雨后春笋般涌现,如“乐动力”、“天天跳绳”等,推动了云上运动会、线上健身等热潮。本文将指导你从零开始开发一个AI运动小程序,利用“云智AI运动识别小程序插件”,介绍运动识别原理、计量方式及运动分析器基类的使用,帮助你在小程序中实现运动计时和计数功能。下篇将继续探讨运动姿态检测规则的编写。
|
16天前
|
移动开发 小程序 PHP
校园圈子论坛系统采取的PHP语音和uni账号开发的小程序APP公众号H5是否只需要4800元?是的,就是只需要4800元
关于校园圈子论坛系统采用PHP语言和uni-app开发的小程序、APP、公众号和H5是否仅需4800元这个问题,实际上很难给出一个确定的答案。这个价格可能受到多种因素的影响
49 8
|
12天前
|
人工智能 小程序 数据处理
uni-app开发AI康复锻炼小程序,帮助肢体受伤患者康复!
近期,多家康复机构咨询AI运动识别插件是否适用于肢力运动受限患者的康复锻炼。本文介绍该插件在康复锻炼中的应用场景,包括康复运动指导、运动记录、恢复程度记录及过程监测。插件集成了人体检测、姿态识别等功能,支持微信小程序平台,使用便捷,安全可靠,帮助康复治疗更加高效精准。
|
24天前
|
数据采集 人工智能 小程序
【一步步开发AI运动小程序】十、姿态动作相似度比较
本文介绍如何利用“云智AI运动识别小程序插件”开发AI运动小程序,重点讲解姿态动作相似度比较功能的运用,包括样本动作帧的采集和姿态相似度的计算方法,以及在组合运动中的应用实例。
|
18天前
|
人工智能 小程序 JavaScript
【一步步开发AI运动小程序】十四、主包超出2M大小限制,如何将插件分包发布?
本文介绍了如何从零开始开发一个AI运动小程序,重点讲解了通过分包技术解决程序包超过2M限制的问题。详细步骤包括在uni-app中创建分包、配置`manifest.json`和`pages.json`文件,并提供了分包前后代码大小对比,帮助开发者高效实现AI运动功能。
|
23天前
|
人工智能 小程序 开发者
【一步步开发AI运动小程序】十一、人体关键点跳跃追踪
本文介绍如何利用“云智AI运动识别小程序插件”开发AI运动小程序,涵盖云上运动会、健身打卡等热门应用场景。通过示例代码展示如何调用插件功能,实现动作追踪与分析,助力开发者快速上手。

热门文章

最新文章