Newer
Older
## vue-dynamic-list
> Simple fixed size dynamically loading lists in Vue.js
This library allows you to create Google Contacts style dynamic lists, it is built upon Vue.js hence is easy to integrate into existing websites with or without Vue.
- [GitLab repository](https://gitlab.insrt.uk/insert/vue-dynamic-list)
- [NPM package](https://www.npmjs.com/package/vue-dynamic-list)
- [unpkg CDN link](https://unpkg.com/vue-dynamic-list@1.0.1/index.js)
Include the library:
```html
<script src="https://unpkg.com/vue-dynamic-list@1.0.1/index.js"></script>
```
You also need [Vue](https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js) and [jQuery](https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js).
In your Vue.js application:
```html
<dynamic-list ref="myList">
<template slot="entry" slot-scope="props">
<div>{{props.entry}}</div>
</template>
<template slot="unloaded" slot-scope="props">
<span>loading!</span>
</template>
</dynamic-list>
```
Using the library:
```js
// create your Vue app, with dynamic-list nested in it
const app = new Vue({
el: '#app'
});
new vDynamicList(app, {
// reference to the <dynamic-list>
ref: 'myList',
// returns a promise which resolves with a section
onLoad: (i, l) => {
return new Promise((resolve, reject) => {
let y = [];
for (let j = 0; j < l; j++) y.push('hello!')
setTimeout(() => resolve(y), 400);
});
},
// you should load this first, and then create vDynamicList
elements: 1400,
// choose a suitable limit for each section
limit: 100
});
```
### Comparison
---
> Vue Dynamic List on the left alongside Google Contacts

### Demo
---

> Not embedding? [(Direct Link)](https://owo.insrt.uk/b9d1435e.mp4)