uniapp中uni-load-more的使用方式
作者:第7个前端
这篇文章主要介绍了uniapp中uni-load-more的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
uniapp中uni-load-more使用
1 引入uniloadmore
import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
components: {uniLoadMore},2 data中写的内容
reload: false,
status: 'more',
contentText: {
contentdown: '上拉加载更多~',
contentrefresh: '加载中',
contentnomore: '我是有底线的~'
},3 template里面写的内容
<uni-load-more :status="status" :icon-size="14" :content-text="contentText" v-if="dataList.length > 0" />
4 请求接口成功之后,判断加载状态,处理数据
success: (result) => {
this.totalCount = result.data.total
if (result.data.total > 0) {
const dataMap = result.data.list
this.dataList = this.reload ? dataMap : this.dataList.concat(dataMap);
this.reload = false;
} else {
this.dataList = [];
}
if (this.totalCount == this.dataList.length) {
this.reload = false;
this.status = 'noMore'
}
}5 监控加载状态
onReachBottom() {
if (this.totalCount > this.dataList.length) {
this.status = 'loading';
setTimeout(() => {
this.pageNum++
this.getMonthTask();//执行的方法
}, 1000)//这里我是延迟一秒在加载方法有个loading效果,如果接口请求慢的话可以去掉
} else { //停止加载
this.status = 'noMore'
}
},uniapp - load-more触底加载,下拉刷新
底部加载load-more(uni-ui组件)
三个状态:more、loading、nomore
- 触底事件:onReachBottom
- 下拉刷新:onPullDownRefresh,停止下拉刷新uni.stopPullDownRefresh()
<template>
<view>
<!-- 底部加载,三个状态:more、loading、nomore -->
<uni-load-more :status="status"></uni-load-more>
</view>
</template>
<script>
export default {
data() {
return {
data: null,
status: 'more', //触底加载状态
page: 1, //记录当前页码
};
},
//触底事件,请求数据、合并
onReachBottom() {
console.log('到底了到底了...');
this.status = 'loading';
this.getData(this.page + 1);
this.page += 1;
},
//下拉刷新,请求第一页
onPullDownRefresh() {
this.getData();
},
mounted() {
this.getData();
},
methods: {
getData(page = 1) {
uni.request({
url: 'https://xxxx.....',
method: 'GET',
data: { page: page },
success: res => {
console.log(res);
//如果页数>1,需要拼接返回的数据
if (page > 1) {
res.data.result = [...this.data.result, ...res.data.result];
}
this.data = res.data;
uni.stopPullDownRefresh(); //拿到数据后,停止下拉刷新
},
fail: () => {},
complete: () => {}
});
},
},
};
</script>总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
