最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

前端Vue3列表滑動無限加載功能實(shí)現(xiàn)

 更新時間:2025年05月29日 14:44:51   作者:夏霞.  
這篇文章主要介紹了前端Vue3列表滑動無限加載功能實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

列表無限加載功能實(shí)現(xiàn)

核心實(shí)現(xiàn)邏輯:使用elementPlus提供的 v-infinite-scrol 指令監(jiān)聽是否滿足觸底條件,滿足加載條件時讓頁數(shù)參數(shù)加一獲取下一頁數(shù)據(jù),做新老數(shù)據(jù)拼接渲染

代碼實(shí)現(xiàn)

<div class="body" v-infinite-scroll="load" :infinite-scroll-disabled="disabled">
         <!-- 商品列表-->
         <GoodsItem v-for="item in goodList" :key="item.id" :goods="item" />
      </div>

v-infinite-scroll="load":監(jiān)聽是否滿足觸底條件

:infinite-scroll-disabled="disabled": 是否當(dāng)前禁用加載

// 獲取基礎(chǔ)數(shù)據(jù)列表渲染
const goodList = ref([])
const reqData = ref({
  categoryId: id,
  page: 1,
  pageSize: 20,
  sortField: 'publishTime'
})
const getGoodList = async () => {
  const res = await getSubCategoryAPI(reqData.value)
  console.log(res)
  goodList.value = res.result.items
}
// 更多加載
const disabled = ref(false)
const load = async ()=>{
  console.log('加載更多數(shù)據(jù)了');
  // 獲取下一頁數(shù)據(jù)
  reqData.value.page++
  const res = await getSubCategoryAPI(reqData.value)
  // 新老數(shù)據(jù)的拼接
  goodList.value = [...goodList.value, ...res.result.items] // ...goodList.value老數(shù)據(jù) ...res.result.items新數(shù)據(jù)
  // 加載完畢停止監(jiān)聽(如果不結(jié)束監(jiān)聽一直向下滑動,就會不斷發(fā)送新的請求,會造成一定的資源浪費(fèi))
  if(res.result.items.length === 0){ // 如果新數(shù)據(jù)為空,則停止監(jiān)聽(可以根據(jù)后端返回的數(shù)據(jù)來判斷)
    disabled.value = true
  }
}

由上圖可以看出前端不停的在向后端發(fā)起新的請求,當(dāng)頁面滑動到底部沒有數(shù)據(jù)之后就不會發(fā)送請求,這樣我們的前端Vue3列表滑動無限加載實(shí)現(xiàn)就完成了

到此這篇關(guān)于前端Vue3列表滑動無限加載實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Vue列表無限加載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

五台县| 营口市| 奈曼旗| 台前县| 衡南县| 木兰县| 宕昌县| 米易县| 永嘉县| 重庆市| 克东县| 堆龙德庆县| 贵州省| 安溪县| 英吉沙县| 东明县| 镇原县| 铜山县| 获嘉县| 苍梧县| 如东县| 陇西县| 页游| 海门市| 繁峙县| 车险| 朝阳区| 大丰市| 上饶市| 五常市| 宣化县| 永登县| 曲水县| 张掖市| 青川县| 汝南县| 大庆市| 三都| 潜山县| 新龙县| 龙泉市|