uniapp实现上拉加载、下拉刷新
一、上拉加载:
1、普通页面:
<script>
export default {
data(){
// 分页参数
queryParams: {
pageNum: 1,
pageSize: 10
},
// 总数
total: 0,
// 加载状态
statusMore: 'more',
},
// 页面触底触发
onReachBottom() {
if (this.queryParams.pageNum * this.queryParams.pageSize >= this.total) return;
this.statusMore = 'loading';
setTimeout(() => {
this.queryParams.pageNum++;
// 获取数据
this.getData();
}, 300);
}
};
</script>
2、在scroll-view中:
<template>
<scroll-view
scroll-y
style="height: 100vh"
@scrolltolower="loadData"
>
<!-- 页面内容 -->
</scroll-view>
</template>
<script>
export default {
methods: {
// 页面触底触发
loadData() {
if (this.queryParams.pageNum * this.queryParams.pageSize >= this.total) return;
this.statusMore = 'loading';
setTimeout(() => {
this.queryParams.pageNum++;
// 获取数据
this.getData();
}, 300);
}
}
}
</script>
二、下拉刷新:
1、普通页面:
- 需要在pages.json设置:
{
"pages": [
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页",
"enablePullDownRefresh": true // 是否支持下拉刷新
}
}
]
}
- 页面中:
<script>
export default {
data(){
// 分页参数
queryParams: {
pageNum: 1,
pageSize: 10
},
// 总数
total: 0,
// 数据
list:[],
},
// 下拉刷新
onPullDownRefresh() {
this.queryParams.pageNum = 1;
this.list = [];
// 获取数据
this.getData();
}
};
</script>
2、在scroll-view中:
<template>
<scroll-view
scroll-y
style="height: 100vh"
refresher-enabled
:refresher-triggered="triggered"
@refresherrefresh="refreshData"
>
<!-- 页面内容 -->
</scroll-view>
</template>
<script>
export default {
data(){
// 是否开启下拉刷新
triggered: false,
// 数据
list:[],
},
onLoad() {
// 下拉刷新
this.refreshData();
},
methods: {
// 下拉刷新
refreshData() {
this.triggered = true;
this.queryParams.pageNum = 1;
this.list = [];
// 获取数据
this.getData();
},
}
}
</script>
本文来自博客园,作者:小周同学~,转载请注明原文链接:https://www.cnblogs.com/xiaozhou-wuyu/p/19168083

浙公网安备 33010602011771号