欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue loadmore 上拉

Loadmore 上拉是一種常用的前端交互方式,它可以在用戶滑動(dòng)頁(yè)面到底部時(shí),在頁(yè)面末尾自動(dòng)添加一定量的數(shù)據(jù),實(shí)現(xiàn)動(dòng)態(tài)加載和更新頁(yè)面的效果,避免頁(yè)面過長(zhǎng)影響用戶體驗(yàn)。

在 Vue 中實(shí)現(xiàn) Loadmore 上拉功能通常需要使用第三方庫(kù),如 vue-infinite-loading 或 vue-lazyload 等。其中,vue-infinite-loading 是比較常用的一個(gè)庫(kù),它可以根據(jù)頁(yè)面滾動(dòng)事件來進(jìn)行條件渲染。下面將為大家介紹如何使用 vue-infinite-loading 實(shí)現(xiàn) Loadmore 上拉功能。

import InfiniteLoading from 'vue-infinite-loading'
<infinite-loading 
@infinite="loadMore"
spinner="spiral"
>
<div v-for="item in items">{{ item }}{
if (response.data.length< this.perPage) {
this.hasMorePages = false;
}
this.items = this.items.concat(response.data);
})
.catch((error) =>{
console.log(error)
})
}
else {
this.$refs.infiniteLoading.$emit('$InfiniteLoading:loaded');
}
}
}
}

在上述代碼中,首先導(dǎo)入了 vue-infinite-loading 庫(kù),然后使用 <infinite-loading> 標(biāo)簽來進(jìn)行條件渲染。其中,@infinite 表示每次觸發(fā)加載更多時(shí)都會(huì)觸發(fā) loadMore 方法,spinner 屬性設(shè)置加載時(shí)的 loading 樣式。

loadMore 方法中先判斷 hasMorePages 屬性,如果為 true 則繼續(xù)向后臺(tái)獲取數(shù)據(jù)。在獲取數(shù)據(jù)時(shí)需要傳入當(dāng)前頁(yè)碼 currentPage 和每頁(yè)條數(shù) perPage,獲取數(shù)據(jù)完成后將獲取到的數(shù)據(jù)添加到 items 數(shù)組中,并判斷是否還有更多數(shù)據(jù),如果沒有則將 hasMorePages 屬性設(shè)置為 false。如果需要第一次加載全部數(shù)據(jù)的話,可以將 hasMorePages 屬性設(shè)置為 true。

最后需要在 else 語(yǔ)句中手動(dòng)觸發(fā) infinite-loading 組件的 loaded 事件,以便提醒用戶已經(jīng)加載完全部數(shù)據(jù)。此時(shí),在頁(yè)面底部會(huì)顯示 "已加載全部" 的提示信息。

使用 vue-infinite-loading 庫(kù)實(shí)現(xiàn) Loadmore 上拉功能不僅方便且穩(wěn)定,也可以根據(jù)需求進(jìn)行自定義樣式。在開發(fā)中需要注意的是,加載時(shí)需要將 hasMorePages 屬性設(shè)置為 false,否則會(huì)出現(xiàn)重復(fù)加載數(shù)據(jù)的問題。