其实这两个功能没有多复杂,很多初学者以为是很高大上的功能,不知道怎么做。说白了就是把分页改成ajax形式的了。本人也属新手,欢迎大家在评论区一起留言讨论
。
配置
下拉刷新配置
根据项目需求选择是进行全局配置还是单页面配置。全局配置在app.json的window中,页面配置在对应pages的.json中。
{"enablePullDownRefresh": true, // 是否开启下拉刷新"backgroundTextStyle":"dark" // 下拉 loading 的样式,仅支持dark/light}// 自定义下拉刷新样式可以使用 scroll-view 进行布局。
关闭下拉刷新动画方法
wx.stopPullDownRefresh()
上拉加载配置
上拉加载只用配置触底距离就可以了,当然不配置也可以,默认就是到最低部触发。
"onReachBottomDistance": 150 // 页面触底距离 单位为px
事件
mpvue中兼容了小程序的生命周期,可直接使用。
下拉刷新事件
onPullDownRefresh () {console.log('下拉刷新')}
上拉触底事件
onReachBottom () {console.log('触底了')}
代码举例
话不多说,直接上代码,相信有点前端基础的都能看得懂。
<script>export default {data () {return {app_list: {}, // 列表数据page: 1, // 当前页数total_page: 0 // 总页数}},// 实例创建完成后调用数据created () {this.getList()},// 上拉触底事件onReachBottom () {if (this.page > this.total_page) {console.log('数据加载完了')} else {// 下一页this.page = this.page + 1this.getList()}},// 下拉刷新事件onPullDownRefresh () {// 初始化页码this.page = 1this.getList()},methods: {// 获取数据方法getList () {const that = thiswx.request({method: 'post',url: 'https://www.xxx.com/list',data: {page: that.page // 传递页码},header: {'content-type': 'application/json'},success (res) {// 关闭下拉刷新动画wx.stopPullDownRefresh()// 返回的数据const data = res.data// 数据追加 data.list为返回的数据列表if (that.page > 1) {// 数据追加that.app_list.push(...data.list)// ...data.list// 等同于// for (var i = 0; i < data.list.length; i++) {// this.art_list.push(data['list'][i])// }} else {// 数据that.app_list = data.list}// 总页数that.total_page = data.total_page}})}}}</script>
小程序demo体验

