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

vue 虛擬滾動列表

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

虛擬滾動是指只保留可見部分內容,延遲渲染看不見的部分。虛擬滾動可以節省內存,在大量數據時,性能得到顯著提高。 Vue提供了一個很好的組件vue-virtual-scroll-list,它允許你虛擬的渲染長列表。這使得你可以優化你的應用程序性能和用戶體驗。

<template>
<div>
<virtual-scroll-list
class="list"
:size="50"
:remain="10"
:bench="10"
:rtl="false"
:fetch-data="fetchData"
:before-resize="beforeResize($event)"
:after-resize="afterResize($event)"
:option-match="optionMatch"
:option-disabled="optionDisabled"
:option-key="optionKey"
:item-height="ITEM_HEIGHT"
:item-component="virtualListItem"
:data-key="dataKey"
:data-sources="dataSource"
:group-key="groupKey"
:group-component="groupListItem"
group-values="A-Z"
/>
</div>
</template>

這里是一個簡單的例子,展示了如何使用vue-virtual-scroll-list。我們定義了Vue組件的外殼,并將配置傳遞給virtual-scroll-list。需要注意的是,我們需要通過fetchData方法從遠程服務器異步獲取數據。在這個例子中,我們也使用了一個vuex-store來管理數據。

import VirtualScrollList from 'vue-virtual-scroll-list';
import { mapActions } from 'vuex';
export default {
name: 'VirtualScrollListDemo',
components: {
VirtualScrollList,
},
data() {
return {
ITEM_HEIGHT: 30,
dataKey: 'id',
groupKey: 'first-letter',
};
},
computed: {
...mapGetters(['dataSource', 'groupListItem', 'virtualListItem']),
},
methods: {
...mapActions(['fetchData']),
optionMatch(option, keyword) {
if (option.label && typeof option.label === 'string') {
return option.label.toLowerCase().indexOf(keyword.toLowerCase()) >-1;
}
return false;
},
optionDisabled() {
return false;
},
optionKey(option) {
return option.id || option.value;
},
beforeResize() {
console.log('Before resize~');
},
afterResize() {
console.log('After resize~');
},
},
};

在Vue中使用vue-virtual-scroll-list非常簡單。可以像其他組件一樣來使用

<virtual-scroll-list>
...
</virtual-scroll-list>

我們需要配置組件,為它提供大量數據來源dataSource和Vue組件virtualListItem。optionDisabled方法判斷每個選項是否禁用或啟用,而optionKey方法就像一個關鍵字,保證每個選項的唯一性