Guide

Install#

npm#

# Vue3
npm i --save @virtual-list/vue
# Vue2
npm i --save @virtual-list/vue @vue/composition-api

CDN#

Import#

// vue3
import VirtualList from '@virtual-list/vue'
// vue2
import VirtualList from '@virtual-list/vue/vue2'

props#

items#

  • Type: Array as PropType<any[]>

  • The array data to display.

disabled#

  • Type: Boolean
  • When disabled, all items are rendered like a normal html list.

horizontal#

  • Type: Boolean
  • Display horizontally.

firstRender#

  • Type: Number. Default: 10
  • Render count at start. For ssr.

buffer#

  • Type: Number. Default: 100
  • Visible area + buffer area = render area.

itemKey#

  • Type: [String, Function] as PropType< "index" | ((item: any, index: number) => any) >
  • Set the key for each item. No key by default. Can be string index, use index as key. Can be a function which return the key.

table#

  • Type: Boolean
  • Render as table.

itemSize#

  • Type: Function as PropType< (item: any, index: number) => number | null | undefined | void >
  • Return height/width of each item. Not recommended, beacause it can get runtime size automatically.

Examples#

Affected by the global CSS of this site, the style of the example is slightly different from the actual style.

Horizontal#

ITEM: 0 - Item 0
ITEM: 1 - Item 1
ITEM: 2 - Item 2
ITEM: 3 - Item 3
ITEM: 4 - Item 4
ITEM: 5 - Item 5
ITEM: 6 - Item 6
ITEM: 7 - Item 7
ITEM: 8 - Item 8
ITEM: 9 - Item 9
ITEM: 10 - Item 10
ITEM: 11 - Item 11
ITEM: 12 - Item 12
ITEM: 13 - Item 13

Vertical#

ITEM: 0 - Item 0
ITEM: 1 - Item 1
ITEM: 2 - Item 2
ITEM: 3 - Item 3
ITEM: 4 - Item 4
ITEM: 5 - Item 5
ITEM: 6 - Item 6
ITEM: 7 - Item 7
ITEM: 8 - Item 8
ITEM: 9 - Item 9
ITEM: 10 - Item 10
ITEM: 11 - Item 11
ITEM: 12 - Item 12
ITEM: 13 - Item 13
ITEM: 14 - Item 14
ITEM: 15 - Item 15
ITEM: 16 - Item 16
ITEM: 17 - Item 17
ITEM: 18 - Item 18
ITEM: 19 - Item 19
ITEM: 20 - Item 20
ITEM: 21 - Item 21
ITEM: 22 - Item 22
ITEM: 23 - Item 23
ITEM: 24 - Item 24
ITEM: 25 - Item 25
ITEM: 26 - Item 26
ITEM: 27 - Item 27

Table#

TextIndex
0ITEM: 0 - Item 0
1ITEM: 1 - Item 1
2ITEM: 2 - Item 2
3ITEM: 3 - Item 3
4ITEM: 4 - Item 4
5ITEM: 5 - Item 5
6ITEM: 6 - Item 6
7ITEM: 7 - Item 7
8ITEM: 8 - Item 8
9ITEM: 9 - Item 9
10ITEM: 10 - Item 10
11ITEM: 11 - Item 11
12ITEM: 12 - Item 12
13ITEM: 13 - Item 13
14ITEM: 14 - Item 14
15ITEM: 15 - Item 15
16ITEM: 16 - Item 16
17ITEM: 17 - Item 17
18ITEM: 18 - Item 18
19ITEM: 19 - Item 19