🌈Render what's visible
npm i virtual-block
import Vue from 'vue'
import VirtualBlock from 'virtual-block/dist'
Vue.use(VirtualBlock)
<VirtualBlock :data="blocks">
<template slot-scope="{data}">
<!-- self defined slots -->
</template>
</VirtualBlock>
<VirtualBlock :height="300" :pageMode="false" :data="blocks">
<template slot-scope="{data}">
<!-- self defined slots -->
</template>
</VirtualBlock>
<VirtualBlock :height="300" :pageMode="false" :fixedBlockHeight="50" :data="blocks">
<template slot-scope="{data}">
<!-- self defined slots -->
</template>
</VirtualBlock>
<VirtualBlock :height="300" :pageMode="false" :data="blocks">
<template slot-scope="{data}">
<template v-if="data.id === 0">
<!-- virtual block slot when id is 0 -->
</template>
<template v-if="data.id === 1">
<!-- virtual block slot when id is 1 -->
</template>
<template v-else>
<!-- other virtual block slots -->
</template>
</template>
</VirtualBlock>
Name | Type | Default | Description |
---|---|---|---|
data |
Array<DataObject> |
- | Required. An Array of Object used as the source data. |
height |
Number |
- | Required when pageMode is false . The height of the virtual block container. |
fixedBlockHeight |
Number |
- | Optional. Specify this prop will assume every block has the same height value and the height keys in data object will be ignored. Note use fixedBlockHeight will improve the performance. |
pageMode |
Boolean |
true |
Optional. true assumes the scroller will be on the window . false assumes the scroller will be on the virtual block container . |
Name | Type | Default | Description |
---|---|---|---|
id |
String/Number | - | Required. Unique key for each virtual block. |
height |
Number | - | Required when prop fixedBlockHeight is not specified. The height of each virtual block. |
MIT