教程

安装#

npm#

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

CDN#

引入#

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

props#

items#

  • 类型: Array as PropType<any[]>

  • 要显示的数组数据.

disabled#

  • 类型: Boolean
  • 禁用. 禁用时, 列表项将全部渲染.

horizontal#

  • 类型: Boolean
  • 横向显示.

firstRender#

  • 类型: Number. 默认: 10
  • 初始渲染条数. 用于 ssr

buffer#

  • 类型: Number. 默认: 100
  • 缓冲距离. 超出滚动盒的可显示距离.

itemKey#

  • 类型: [String, Function] as PropType< "index" | ((item: any, index: number) => any) >
  • 设置每项的 key. 默认没有 key. 可以是index, 代表用数组 index 作 key. 也可以是一个返回 key 的方法.

table#

  • 类型: Boolean
  • 表格模式.

itemSize#

  • 类型: Function as PropType< (item: any, index: number) => number | null | undefined | void >
  • 返回每项的高度或宽度(横向显示时). 不推荐使用, 因为会自动获取实时尺寸.

例子#

受本站全局 css 影响, 例子的样式与实际样式有细微差别.

横向#

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: 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

表格#

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