uniapp實(shí)現(xiàn)滾動(dòng)觸底加載項(xiàng)目實(shí)戰(zhàn)
導(dǎo)語(yǔ)
在日測(cè)的開發(fā)過程中,經(jīng)常會(huì)碰到頁(yè)面需要渲染大量數(shù)據(jù)的情況,這時(shí)候就需要用到滾動(dòng)加載功能,下面總結(jié)一下方法。
原理分析
使用@scrolltolower
事件來監(jiān)聽滾動(dòng)到底部,然后加載下一頁(yè)的數(shù)據(jù)。
實(shí)戰(zhàn)演練
模板頁(yè)面
<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ù)
// 滾動(dòng)列表 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)用
// 滾動(dòng)到底部 function scrollBottom() { console.log("滾動(dòng)到底部!"); 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實(shí)現(xiàn)滾動(dòng)觸底加載項(xiàng)目實(shí)戰(zhàn)的詳細(xì)內(nèi)容,更多關(guān)于uniapp滾動(dòng)觸底加載的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript中十種一步拷貝數(shù)組的方法實(shí)例詳解
JavaScript中我們經(jīng)常會(huì)遇到拷貝數(shù)組的場(chǎng)景,但是都有哪些方式能夠來實(shí)現(xiàn)呢,我們不妨來梳理一下,感興趣的朋友跟隨小編一起看看吧2019-04-04利用JS實(shí)現(xiàn)簡(jiǎn)單的日期選擇插件
這篇文章主要介紹了利用JS實(shí)現(xiàn)簡(jiǎn)單的日期選擇插件,文中實(shí)現(xiàn)兩種效果的日期選擇,一種是默認(rèn)參數(shù),點(diǎn)擊日期后直接選擇該日期,另一種是顯示按鈕來設(shè)置時(shí)間,有需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01js實(shí)現(xiàn)人才網(wǎng)站職位選擇功能的方法
這篇文章主要介紹了js實(shí)現(xiàn)人才網(wǎng)站職位選擇功能的方法,涉及javascript動(dòng)態(tài)操作頁(yè)面元素結(jié)點(diǎn)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08靜態(tài)的動(dòng)態(tài)續(xù)篇之來點(diǎn)XML
靜態(tài)的動(dòng)態(tài)續(xù)篇之來點(diǎn)XML...2006-08-08Laravel中常見的錯(cuò)誤與解決方法小結(jié)
大家在用Laravel框架期間可能會(huì)遇到了不少問題,現(xiàn)在我將自己遇到的一些問題總結(jié)出來,有一些調(diào)試起來著實(shí)不太容易,本文篩選出幾個(gè),希望這篇文章能讓大家在PHP開發(fā)中少走一些彎路。2016-08-08