VirtualList
Virtual list, supporting variable height items.
Fixed height items
code
<script setup>
import { ref } from 'vue'
const listData = Array.from({ length: 100 }, (_, i) => ({
id: i,
name: `Item ${i}`,
}))
</script>
<template>
<PVirtualList class="!h-32 w-100" :list-data="listData" data-key="id" :item-size="40">
<template #default="{ data }">
<div class="px-4 h-10 py-2">
{{ data.name }}
</div>
</template>
</PVirtualList>
</template>
Dynamic height items
Set an approximate height for each item.
code
<script setup>
import { ref } from 'vue'
const listData = Array.from({ length: 100 }, (_, i) => ({
key: i,
name: `Item ${i}`,
height: Math.random() * 100 + 40,
}))
</script>
<template>
<PVirtualList class="!h-32 w-100" :list-data="listData" data-key="key" :item-size="40">
<template #default="{ data }">
<div class="px-4 py-2" :style="{ height: `${data.height}px` }">
{{ data.name }}
</div>
</template>
</PVirtualList>
</template>