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)文章
Vue通過字符串關(guān)鍵字符實現(xiàn)動態(tài)渲染input輸入框
這篇文章主要為大家詳細介紹了Vue如何通過字符串關(guān)鍵字符實現(xiàn)動態(tài)渲染input輸入框。文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-12-12Vue-cli集成axios請求出現(xiàn)CORS跨域問題及解決
這篇文章主要介紹了Vue-cli集成axios請求出現(xiàn)CORS跨域問題及解決方案,具有很好的參考價值,希望對大家有所幫助,2023-10-10Vue.js實現(xiàn)一個自定義分頁組件vue-paginaiton
這篇文章主要為大家詳細介紹了Vue.js實現(xiàn)一個自定義分頁組件vue-paginaiton的具體代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09使用elementuiadmin去掉默認mock權(quán)限控制的設置
這篇文章主要介紹了使用elementuiadmin去掉默認mock權(quán)限控制的設置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04