色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue loadmore 上拉

方一強2年前7瀏覽0評論

Loadmore 上拉是一種常用的前端交互方式,它可以在用戶滑動頁面到底部時,在頁面末尾自動添加一定量的數據,實現動態加載和更新頁面的效果,避免頁面過長影響用戶體驗。

在 Vue 中實現 Loadmore 上拉功能通常需要使用第三方庫,如 vue-infinite-loading 或 vue-lazyload 等。其中,vue-infinite-loading 是比較常用的一個庫,它可以根據頁面滾動事件來進行條件渲染。下面將為大家介紹如何使用 vue-infinite-loading 實現 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');
}
}
}
}

在上述代碼中,首先導入了 vue-infinite-loading 庫,然后使用 <infinite-loading> 標簽來進行條件渲染。其中,@infinite 表示每次觸發加載更多時都會觸發 loadMore 方法,spinner 屬性設置加載時的 loading 樣式。

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

最后需要在 else 語句中手動觸發 infinite-loading 組件的 loaded 事件,以便提醒用戶已經加載完全部數據。此時,在頁面底部會顯示 "已加載全部" 的提示信息。

使用 vue-infinite-loading 庫實現 Loadmore 上拉功能不僅方便且穩定,也可以根據需求進行自定義樣式。在開發中需要注意的是,加載時需要將 hasMorePages 屬性設置為 false,否則會出現重復加載數據的問題。