Skip to content

Commit d7200d1

Browse files
author
Guillaume Chau
committed
Update demo
1 parent a09a42f commit d7200d1

File tree

9 files changed

+4474
-54
lines changed

9 files changed

+4474
-54
lines changed

docs-src/.babelrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"presets": [
3-
["es2015", { "modules": false }]
3+
["env", { "modules": false }]
44
]
55
}

docs-src/package.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,20 @@
1010
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
1111
},
1212
"dependencies": {
13-
"faker": "^3.1.0",
13+
"faker": "^4.1.0",
1414
"vue": "^2.1.0"
1515
},
1616
"devDependencies": {
1717
"babel-core": "^6.0.0",
18-
"babel-loader": "^6.0.0",
19-
"babel-preset-es2015": "^6.0.0",
20-
"cross-env": "^3.0.0",
21-
"css-loader": "^0.25.0",
22-
"file-loader": "^0.9.0",
23-
"style-loader": "^0.13.1",
24-
"vue-loader": "^10.0.0",
18+
"babel-loader": "^7.0.0",
19+
"babel-preset-env": "^1.6.1",
20+
"cross-env": "^5.0.0",
21+
"css-loader": "^0.28.0",
22+
"file-loader": "^1.1.0",
23+
"style-loader": "^0.19.0",
24+
"vue-loader": "^13.0.0",
2525
"vue-template-compiler": "^2.1.0",
26-
"webpack": "^2.1.0-beta.25",
27-
"webpack-dev-server": "^2.1.0-beta.9"
26+
"webpack": "^3.8.0",
27+
"webpack-dev-server": "^2.9.3"
2828
}
2929
}

docs-src/src/App.vue

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,28 @@
88
<input v-model="enableLetters" type="checkbox" /> variable height
99
</label>
1010
<span>
11-
<input v-model="buffer" type="number" min="1" max="500000" /> buffer
11+
<input v-model.number="buffer" type="number" min="1" max="500000" /> buffer
1212
</span>
1313
<span>
14-
<input v-model="poolSize" type="number" min="1" max="500000" /> poolSize
14+
<input v-model.number="poolSize" type="number" min="1" max="500000" /> poolSize
1515
</span>
1616
<span v-if="generateTime !== null">
1717
Items generation: {{ generateTime }} ms
1818
</span>
19+
<span>
20+
Updates: {{ updateCount }}
21+
</span>
1922
<span>
2023
<button @mousedown="showScroller = !showScroller">Toggle scroller</button>
2124
<label><input type="checkbox" v-model="scopedSlots" /> Scoped slots</label>
2225
</span>
26+
2327
</div>
2428
<div class="content" v-if="showScroller">
2529
<div class="wrapper">
2630
<!-- Scoped slots -->
27-
<virtual-scroller v-if="scopedSlots" class="scroller" :item-height="itemHeight" :items="items" main-tag="section" content-tag="table" :buffer="buffer" :pool-size="poolSize">
28-
<template scope="props">
31+
<virtual-scroller v-if="scopedSlots" class="scroller" :item-height="itemHeight" :items="items" main-tag="section" content-tag="table" :buffer="buffer" :pool-size="poolSize" emit-update @update="onUpdate">
32+
<template slot-scope="props">
2933
<!-- <letter v-if="props.item.type === 'letter'" :item="props.item"></letter>-->
3034
<tr v-if="props.item.type === 'letter'" class="letter" :key="props.itemKey">
3135
<td class="index">
@@ -40,7 +44,7 @@
4044
</virtual-scroller>
4145

4246
<!-- Renderers -->
43-
<virtual-scroller v-else class="scroller" :item-height="itemHeight" :items="items" :renderers="renderers" type-field="type" key-field="index" main-tag="section" content-tag="table"></virtual-scroller>
47+
<virtual-scroller v-else class="scroller" :item-height="itemHeight" :items="items" :renderers="renderers" type-field="type" key-field="index" main-tag="section" content-tag="table" :buffer="buffer" :pool-size="poolSize" emit-update @update="onUpdate"/>
4448
</div>
4549
</div>
4650
</div>
@@ -71,9 +75,10 @@ export default {
7175
updateTime: null,
7276
showScroller: true,
7377
scopedSlots: false,
74-
buffer: 0,
75-
poolSize: 1,
78+
buffer: 200,
79+
poolSize: 2000,
7680
enableLetters: true,
81+
updateCount: 0,
7782
}),
7883
7984
watch: {
@@ -101,7 +106,7 @@ export default {
101106
},
102107
103108
itemHeight () {
104-
return this.enableLetters ? null : 42
109+
return this.enableLetters ? null : 50
105110
},
106111
},
107112
@@ -116,6 +121,10 @@ export default {
116121
this._dirty = true
117122
this.items = items
118123
},
124+
125+
onUpdate (startIndex, endIndex) {
126+
this.updateCount++
127+
},
119128
},
120129
121130
updated () {
@@ -192,8 +201,7 @@ body {
192201
}
193202
194203
.item {
195-
height: 42px;
196-
box-sizing: border-box;
204+
height: 50px;
197205
cursor: pointer;
198206
user-select: none;
199207
-moz-user-select: none;
@@ -211,6 +219,12 @@ body {
211219
font-weight: bold;
212220
}
213221
222+
.letter td {
223+
padding: 12px;
224+
height: 200px;
225+
box-sizing: border-box;
226+
}
227+
214228
.index {
215229
color: rgba(0, 0, 0, 0.2);
216230
width: 55px;
@@ -221,7 +235,19 @@ table {
221235
border-collapse: collapse;
222236
}
223237
224-
td {
238+
.person td:first-child {
225239
padding: 12px;
226240
}
241+
242+
.person .info {
243+
display: flex;
244+
align-items: center;
245+
height: 48px;
246+
}
247+
248+
.avatar {
249+
width: 50px;
250+
height: 50px;
251+
margin-right: 12px;
252+
}
227253
</style>

docs-src/src/Item.vue

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,14 @@
44
{{item.index}}
55
</td>
66
<td>
7-
{{item.value.name}}
7+
<div class="info">
8+
<img
9+
class="avatar"
10+
:src="item.value.avatar"
11+
:key="item.value.avatar"
12+
/>
13+
<span>{{item.value.name}}</span>
14+
</div>
815
</td>
916
</tr>
1017
</template>

docs-src/src/data.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export function getData (count, letters) {
1212
for (var i = 0; i < count; i++) {
1313
const item = {
1414
name: faker.name.findName(),
15+
avatar: faker.internet.avatar(),
1516
}
1617
const letter = item.name.charAt(0).toLowerCase()
1718
raw[letter].push(item)
@@ -35,7 +36,7 @@ export function getData (count, letters) {
3536
index: index++,
3637
type: 'person',
3738
value: item,
38-
height: 42,
39+
height: 50,
3940
})
4041
}
4142
}

docs-src/src/main.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import Vue from 'vue'
22
import VirtualScroller, { VirtualScroller as Comp } from '../../'
3+
import '../../dist/vue-virtual-scroller.css'
4+
import App from './App.vue'
35

46
console.log(VirtualScroller, Comp)
57

68
Vue.use(VirtualScroller)
79

8-
import App from './App.vue'
9-
1010
/* eslint-disable no-new */
1111
new Vue({
1212
el: '#app',

0 commit comments

Comments
 (0)