uniapp實現(xiàn)滾動觸底加載項目實戰(zhàn)
更新時間:2023年09月19日 09:14:23 作者:MarkGuan
這篇文章主要為大家介紹了uniapp實現(xiàn)滾動觸底加載項目實戰(zhàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
導(dǎo)語
在日測的開發(fā)過程中,經(jīng)常會碰到頁面需要渲染大量數(shù)據(jù)的情況,這時候就需要用到滾動加載功能,下面總結(jié)一下方法。
原理分析
使用@scrolltolower事件來監(jiān)聽滾動到底部,然后加載下一頁的數(shù)據(jù)。
實戰(zhàn)演練
模板頁面
<scroll-view
:scroll-y="true"
class="block-main block-two-level block-pad"
@scrolltolower="scrollBottom">
<view class="scroll-ls" v-for="(item, index) in scrollInfo.list" :key="index"> {{ item }} </view>
<uni-load-more v-if="scrollInfo.list.length" :status="scrollInfo.loading"></uni-load-more>
</scroll-view>樣式編寫
.scroll-ls {
margin-top: 20rpx;
padding: 50rpx 0;
text-align: center;
background: $f8;
}腳本使用
- 定義數(shù)據(jù)
// 滾動列表
const scrollInfo = reactive({
originList: [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28,
],
list: [],
pageInfo: {
page: 1,
size: 8,
pages: 0,
},
loading: "more",
});- 方法調(diào)用
// 滾動到底部
function scrollBottom() {
console.log("滾動到底部!");
if (scrollInfo.pageInfo.page < scrollInfo.pageInfo.pages) {
scrollInfo.pageInfo.page++;
scrollInfo.loading = "loading";
getList();
} else {
scrollInfo.loading = "noMore";
}
}- 獲取列表
// 獲取列表
function getList() {
if (scrollInfo.pageInfo.page <= 1) {
show.value = true;
}
let data = proxy.$apis.utils.splitData(scrollInfo.originList, 8);
scrollInfo.pageInfo.pages = data.pages;
setTimeout(() => {
if (scrollInfo.pageInfo.page <= 1) {
scrollInfo.list = data.list[scrollInfo.pageInfo.page - 1];
setTimeout(() => {
show.value = false;
}, 500);
} else {
scrollInfo.list = [...scrollInfo.list, ...data.list[scrollInfo.pageInfo.page - 1]];
}
scrollInfo.loading = scrollInfo.pageInfo.page < scrollInfo.pageInfo.pages ? "more" : "noMore";
}, 1000);
}案例展示
h5 端效果

小程序端效果

APP 端效果

最后
以上就是uniapp實現(xiàn)滾動觸底加載項目實戰(zhàn)的詳細(xì)內(nèi)容,更多關(guān)于uniapp滾動觸底加載的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript中十種一步拷貝數(shù)組的方法實例詳解
JavaScript中我們經(jīng)常會遇到拷貝數(shù)組的場景,但是都有哪些方式能夠來實現(xiàn)呢,我們不妨來梳理一下,感興趣的朋友跟隨小編一起看看吧2019-04-04

