vue實(shí)現(xiàn)商品列表的無限加載思路和步驟詳解
基礎(chǔ)思路
- 觸底條件滿足之后 page++,拉取下一頁數(shù)據(jù)
- 新老數(shù)據(jù)做數(shù)組拼接
- 判斷是否已經(jīng)全部加載完畢,停止監(jiān)聽
步驟1:加載下一頁數(shù)據(jù)
重構(gòu)商品二級分類組件
注:v-infinite-scroll為elementPlus中Infinite Scroll無限滾動的自定義指令
<div class="body" v-infinite-scroll="load" > <!-- 商品列表--> <GoodsItem v-for="good in goodList" :good="good" :key="good.id"></GoodsItem> </div>
//加載更多 const load = async () => { // 獲取下一頁的數(shù)據(jù) reqData.value.page++ console.log(reqData.value.page) const res = await getSubCategoryAPI(reqData.value) //新加載的數(shù)據(jù)與老數(shù)據(jù)進(jìn)行拼接合并 goodList.value = [...goodList.value, ...res.result.items] } // 獲取二級分類商品 const goodList = ref([]) const reqData = ref({ categoryId: route.params.id, page: 1, pageSize: 20, sortField: 'publishTime' }) const getGoodList = async () => { const res = await getSubCategoryAPI(reqData.value) goodList.value = res.result.items } onMounted(() => getGoodList())
步驟2:無數(shù)據(jù)停止加載
重構(gòu)template與script,infinite-scroll-disabled
也是Infinite Scroll的指令
<div class="body" v-infinite-scroll="load" :infinite-scroll-disabled="disabled"> <!-- 商品列表--> <GoodsItem v-for="good in goodList" :good="good" :key="good.id"></GoodsItem> </div>
到此這篇關(guān)于vue實(shí)現(xiàn)商品列表的無限加載的文章就介紹到這了,更多相關(guān)vue商品列表無限加載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue2.0嵌套路由實(shí)現(xiàn)豆瓣電影分頁功能(附demo)
這篇文章主要介紹了vue2.0嵌套路由實(shí)現(xiàn)豆瓣電影分頁功能(附demo),這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。2017-03-03web前端Vue報(bào)錯:Uncaught?(in?promise)?TypeError:Cannot?read?
這篇文章主要給大家介紹了關(guān)于web前端Vue報(bào)錯:Uncaught?(in?promise)?TypeError:Cannot?read?properties?of?nu的解決方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01Vue2中無法監(jiān)聽數(shù)組和對象的某些變化問題
這篇文章主要介紹了Vue2中無法監(jiān)聽數(shù)組和對象的某些變化問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08