|
4 | 4 | <span>
|
5 | 5 | <input v-model="countInput" type="number" min="0" max="500000" /> items
|
6 | 6 | </span>
|
| 7 | + <span> |
| 8 | + <input v-model="buffer" type="number" min="1" max="500000" /> buffer |
| 9 | + </span> |
| 10 | + <span> |
| 11 | + <input v-model="poolSize" type="number" min="1" max="500000" /> poolSize |
| 12 | + </span> |
7 | 13 | <span v-if="generateTime !== null">
|
8 | 14 | Items generation: {{ generateTime }} ms
|
9 | 15 | </span>
|
10 |
| - <span v-if="updateTime !== null"> |
11 |
| - Virtual scroller update: {{ updateTime }} ms |
12 |
| - </span> |
13 | 16 | <span>
|
14 | 17 | <button @mousedown="showScroller = !showScroller">Toggle scroller</button>
|
15 | 18 | <label><input type="checkbox" v-model="scopedSlots" /> Scoped slots</label>
|
|
18 | 21 | <div class="content" v-if="showScroller">
|
19 | 22 | <div class="wrapper">
|
20 | 23 | <!-- Scoped slots -->
|
21 |
| - <virtual-scroller v-if="scopedSlots" class="scroller" :items="items" item-height="42" main-tag="section" content-tag="table"> |
| 24 | + <virtual-scroller v-if="scopedSlots" class="scroller" :items="items" main-tag="section" content-tag="table" :buffer="buffer" :pool-size="poolSize"> |
22 | 25 | <template scope="props">
|
23 | 26 | <!-- <letter v-if="props.item.type === 'letter'" :item="props.item"></letter>-->
|
24 |
| - <tr v-if="props.item.type === 'letter'" class="letter"> |
| 27 | + <tr v-if="props.item.type === 'letter'" class="letter" :key="props.itemKey"> |
25 | 28 | <td class="index">
|
26 | 29 | {{props.item.index}}
|
27 | 30 | </td>
|
28 | 31 | <td>
|
29 | 32 | {{props.item.value}} Scoped
|
30 | 33 | </td>
|
31 | 34 | </tr>
|
32 |
| - <item v-if="props.item.type === 'person'" :item="props.item"></item> |
| 35 | + <item v-if="props.item.type === 'person'" :item="props.item" :key="props.itemKey"></item> |
33 | 36 | </template>
|
34 | 37 | </virtual-scroller>
|
35 | 38 |
|
36 | 39 | <!-- Renderers -->
|
37 |
| - <virtual-scroller v-else class="scroller" :items="items" :renderers="renderers" item-height="42" type-field="type" key-field="index" main-tag="section" content-tag="table"></virtual-scroller> |
| 40 | + <virtual-scroller v-else class="scroller" :items="items" :renderers="renderers" type-field="type" key-field="index" main-tag="section" content-tag="table"></virtual-scroller> |
38 | 41 | </div>
|
39 | 42 | </div>
|
40 | 43 | </div>
|
@@ -65,6 +68,8 @@ export default {
|
65 | 68 | updateTime: null,
|
66 | 69 | showScroller: true,
|
67 | 70 | scopedSlots: false,
|
| 71 | + buffer: 0, |
| 72 | + poolSize: 1, |
68 | 73 | }),
|
69 | 74 |
|
70 | 75 | watch: {
|
@@ -191,7 +196,12 @@ body {
|
191 | 196 | .letter {
|
192 | 197 | text-transform: uppercase;
|
193 | 198 | color: grey;
|
194 |
| - font-weight: bold; |
| 199 | + font-weight: lighter; |
| 200 | + height: 200px; |
| 201 | +} |
| 202 | +
|
| 203 | +.letter .value { |
| 204 | + font-size: 120px; |
195 | 205 | }
|
196 | 206 |
|
197 | 207 | .index {
|
|
0 commit comments