# Infinity Scroll 无限滚动
当即将滚动至列表底部时,自动加载更多数据
# 规则
- 容器组件,内嵌具名插槽infinity-scroll,包裹需要无限加载的内容
# 可选参数
| Prop | type | Required | Default | Description | 
|---|---|---|---|---|
| loadingStatus | String | no | LOADING_STATUS_INITIAL | 需要使用InfinityScroll.loadingStatus中定义的常量,用处是指定列表底部加载图标(无/完成/加载中) | 
枚举值为 LOADING_STATUS_INITIAL(无底部图标),LOADING_STATUS_DONE(展示theEnd图标),LOADING_STATUS_LOADING(展示加载中图标)
# 事件回调
| Event | Description | 
|---|---|
| loadMore() | 当即将滚动至列表底部时会触发loadMore事件,在事件的回调函数中可以进行同步或者异步的操作,在全部操作完成后将loadingStatus改为LOADING_STATUS_DONE,表示列表加载完结。 | 
# 使用方法
<template>
  <vs-infinity-scroll :loading-status="loadingStatus" @load-more="loadMore">
    <template v-slot:infinity-scroll>
      <div class="box" :key="key" v-for="(item, key) in array">{{key}}</div>
    </template>
  </vs-infinity-scroll>
</template>
<script>
  import {ref} from '@vue/composition-api'
  import {InfinityScroll} from 'horizin-ui'
  export default {
    components: {
      'vs-infinity-scroll': InfinityScroll
    },
    setup() {
      const {
        LOADING_STATUS_INITIAL,
        LOADING_STATUS_DONE,
        LOADING_STATUS_LOADING
      } = InfinityScroll.loadingStatus
      const array = ref(10)
      const loadingStatus = ref(LOADING_STATUS_INITIAL)
      const loadMore = () => {
        if (array.value === 50) {
          loadingStatus.value = LOADING_STATUS_DONE    
          return
        }
        loadingStatus.value = LOADING_STATUS_LOADING
        setTimeout(() => {
          loadingStatus.value = LOADING_STATUS_INITIAL
          array.value += 10
        }, 1000)
      }
      return {
        array,
        loadingStatus,
        loadMore
      }
    }
  }
</script>