Skip to content

legeneek/vue-infinite-list

Repository files navigation

vue-infinite-list

infinite list based on vue2.

Installation

npm i vue-infinite-list

demo

npm run start

Basic Use

import and register the infinite list component.

import InfiniteList from 'vue-infinite-list'

Vue.component(InfiniteList.name, InfiniteList)

use it in you app, pass the list item component and spinner component to infinite list component, config the props.

<template>
  <div id="app">
      <infinite-list @load="load" :list-item="listItem" :spinner="loadSpinner" :container-height="containerHeight" :item-height="itemHeight" :items="items" :loading="loading">
      </infinite-list>
    </div>
</template>

<script>
import ListItem from './ListItem.vue'
import LoadSpinner from './LoadSpinner.vue'

export default {
  data() {
    return {
      listItem: ListItem,
      loadSpinner: LoadSpinner
    }
  },
  methods: {
    load() {
      //...
    }
  }
  // ...
}

</script>

Configuration

listItem

the list item component

spinner

this load spinner component

containerHeight

the height of the list container

itemHeight

the height of the item

items

array of list items. list item data must contain a unique id which used as the key.

blockFactor

the list is split to many blocks of the same height(blockFactor * containerHeight)

extendFactor

the extra height(extendFactor * containerHeight) should render

loading

the loading status

Event

load

notify the parent component to load more list items