在Vue應用中,持續加載(Infinite scrolling)是一種廣泛使用的技術,它可以在用戶向下滾動時逐漸加載更多內容。Vue的虛擬滾動功能通過把滾動容器內部元素進行緩存,從而實現了快速渲染超大數據量。
Vue中實現持續加載的方法有很多種,僅僅是一次性將所有數據加載出來,這種方式可能會導致加載時間過長,甚至造成頁面卡頓。更優的方式是,只加載部分數據,并且隨著用戶滾動至視口底部,逐漸加載更多的數據,這就是持續加載。
<template> <div ref="scroll" v-onscroll="scrollHandler"> <div v-for="(item, index) in items" :key="index"> {{ item }} </div> <div v-if="loading" class="loading"> Loading... </div> </div> </template> <script> export default { data () { return { page: 1, items: [], loading: false, limit: 10 } }, mounted () { this.scroll = this.$refs.scroll; this.getItems(); }, methods: { async getItems () { const res = await fetch(`api/?page=${this.page}&limit=${this.limit}`); const data = await res.json(); this.items = [...this.items, ...data]; this.loading = false; this.page++; }, scrollHandler (e) { if (this.loading) return; if (this.scroll.clientHeight + this.scroll.scrollTop === this.scroll.scrollHeight) { this.loading = true; this.getItems(); } } } } </script>
上面代碼展示了一個簡單的持續加載Vue組件的例子。我們首先在HTML中建立一個名為scroll的引用,之后在mounted()函數中獲取它。當用戶滾動到容器底部時,scrollHandler()函數會通過判斷loading狀態,來避免重復加載數據。當獲取到數據后,load狀態設置為false,代表完成加載。這樣一來,組件就能逐漸地完成數據的渲染。
總的來說,持續加載是Vue中常見的數據渲染方法,它適用于需要逐漸加載數據的情境中。對于需要加速數據渲染的開發者而言,Vue持續加載機制可以極大地提高數據的加載效率。
上一篇vue 控制類名
下一篇chrome安裝json