vue實現(xiàn)列表滑動下拉加載數(shù)據(jù)的方法
更新時間:2024年11月25日 14:10:51 作者:在路上`
文章介紹了如何使用Vue實現(xiàn)列表滑動下拉加載數(shù)據(jù)的功能,通過監(jiān)聽滾動事件,檢測用戶是否滾動到底部,然后動態(tài)加載更多數(shù)據(jù),附帶了實現(xiàn)思路和案例代碼,感興趣的朋友一起看看吧
一、實現(xiàn)效果

二、實現(xiàn)思路
使用滾動事件監(jiān)聽器來檢測用戶是否滾動到底部,然后加載更多數(shù)據(jù)
- 監(jiān)聽滾動事件。
- 檢測用戶是否滾動到底部。
- 加載更多數(shù)據(jù)。
三、案例代碼
<div class="drawer-content">
<div ref="loadMoreTrigger" class="load-more-trigger"></div>
<div v-if="isLoading" class="loading-button">
<button type="primary" loading>加載中...</button>
</div>
</div>
import { onBeforeUnmount, onMounted, ref, watch } from 'vue';
const isLoading = ref(false);
const page = ref(1);
const loadMoreData = async () => {
if (isLoading.value) return;
isLoading.value = true;
// 模擬異步加載數(shù)據(jù)
setTimeout(() => {
const newItems: any = props.chartTableData
?.slice(0, 10)
.map((item) => ({ ...item, id: item.id + page.value * 100 }));
cardList.value = [...cardList.value, ...newItems];
page.value += 1;
isLoading.value = false;
}, 1000);
};
const handleScroll = () => {
const drawerContent = document.querySelector('.drawer-content');
if (drawerContent) {
const { scrollTop, scrollHeight, clientHeight } = drawerContent;
if (scrollTop + clientHeight >= scrollHeight - 10) {
loadMoreData();
}
}
};
onMounted(() => {
const drawerContent = document.querySelector('.drawer-content');
if (drawerContent) {
drawerContent.addEventListener('scroll', handleScroll);
}
});
onBeforeUnmount(() => {
const drawerContent = document.querySelector('.drawer-content');
if (drawerContent) {
drawerContent.removeEventListener('scroll', handleScroll);
}
});
.load-more-trigger {
height: 1px;
}
.loading-button {
text-align: center;
margin-top: 10px;
}到此這篇關(guān)于vue實現(xiàn)列表滑動下拉加載數(shù)據(jù)的文章就介紹到這了,更多相關(guān)vue下拉加載數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue3+elementui plus創(chuàng)建項目的方法
這篇文章主要介紹了Vue3+elementui plus創(chuàng)建項目的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
vue3 el-table回顯選中的數(shù)據(jù)方式
文章主要介紹了如何在Vue 3中使用el-table組件實現(xiàn)數(shù)據(jù)回顯和選中功能,HTML部分展示了如何構(gòu)建表格行,而JavaScript部分則通過`item`變量表示每一行的數(shù)據(jù),并通過布爾值`true`來標(biāo)記選中狀態(tài),作者通過個人經(jīng)驗分享,希望能為其他開發(fā)者提供參考和支持2025-12-12
element-ui upload組件上傳文件類型限制問題小結(jié)
最近我遇到這樣的問題,接受類型已經(jīng)加了accept 但是當(dāng)選擇彈出本地選擇文件時候切換到所有文件 之前的文件類型就本根過濾不掉了,下面小編給大家介紹element-ui upload組件上傳文件類型限制問題小結(jié),感興趣的朋友一起看看吧2024-02-02
vue中使用 pako.js 解密 gzip加密字符串的方法
這篇文章主要介紹了vue項目中 使用 pako.js 解密 gzip加密字符串 的方法,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06

