使用生命周期中的onReachBottom来实现
(实现触底加载:后端必须要给“总条数”,前端必须要传“当前页数和当前条数”)
<template>
<view class="dataInfo">
<view class="list" v-for="(item,index) in dataList" :key='index'>
<text>{{index}}</text>
<text>{{item}}</text>
</view>
</view>
</template>
<script>
import {
indexListData,
} from '@/api/index.js' //请求的数据
export default {
data() {
return {
dataList: [],//数据
total: null, //总条数
data: {
pageNum: 1,//第几页
pageSize: 5,//显示多少条
}
}
},
mounted() {
this.getList()
},
methods: {
getList() { //获取数据
indexListData(this.data).then(res => {
if (res.rows) {
this.dataList = [...this.dataList,...res.rows]
}
this.total = res.total
})
}
},
onReachBottom() { //触底事件
if (this.data.pageNum * this.data.pageSize >= this.total) {
uni.showToast({
title: '没有更多数据了',
icon: 'none',
duration: 1000
});
setTimeout(() => {
uni.hideLoading()
}, 500)
} else {
if (this.data.pageNum <= this.data.pageNum - 1) {
setTimeout(() => {
uni.hideLoading()
}, 500)
} else {
uni.showLoading({
title: '加载中'
});
this.data.pageNum++
this.getList()
}
setTimeout(() => {
uni.hideLoading()
}, 500)
}
},
}
</script>
版权声明:本文为m0_50832030原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。