> 文章列表 > 【vue2 pc端】下拉滑动加载更多 vue-data-loading

【vue2 pc端】下拉滑动加载更多 vue-data-loading

【vue2 pc端】下拉滑动加载更多 vue-data-loading

官网地址
【vue2 pc端】下拉滑动加载更多 vue-data-loading
【vue2 pc端】下拉滑动加载更多 vue-data-loading

页面项目中使用

<template><!--  空数据时显示 --><div class="nonono"><img src="@/assets/img/404_cloud.png" alt="" v-if="goodslist.length <= 0" class="nonnonoimg"></div><vue-data-loading :loading="loading" :completed="completed":listens="['infinite-scroll', 'pull-down']" :init-scroll="true"@infinite-scroll="infiniteScroll" @pull-down="pullDown"><card :list="goodslist"></card><div><!--  具体的内容显示 --><div v-for='(item,i) in goodslist' :key='i'>{{item.name}}</div></div><div slot="completed">已全部加载</div> </vue-data-loading><!--  没有滑到底,并且还有更多数据时显示 --><div class="xiahuabox" v-if="loading==false&&completed==false"><div>下滑查看更多</div><img src="@/assets/img/xiaxia.png" alt="" class="xiaxiaimg"></div></template>
<script>
import VueDataLoading from 'vue-data-loading'
export default {
components: { VueDataLoading },data() {return {goodslist :[],loading: false,  // 加载中completed: false, // 加载完毕truepage: 1,total:0, //总条数}},methods: {pullUp() {this.page++this.getlist()},pullDown() {this.goodslist = []this.page = 1this.completed = falsethis.getlist()},infiniteScroll() {this.page++this.getlist()},getlist(){this.loading = true;this.$apiUrl.lmo_goods(data).then((res) => {// 加载完if(this.goodslist.length >= Number(res.data.total)) {this.completed = truethis.loading = falsereturn}this.loading = false;this.goodslist = this.goodslist.concat(res.data.list);this.total = Number(res.data.total);});}}
}</script>
<style lang='scss' scoped>// 空数据.nonono{text-align: center;margin: 50px 0;}.nonnonoimg{width: 240px;height: 180px;}// 下拉滑动查看更多.xiahuabox{margin: 20px auto 22px;text-align: center;div{font-size: 17px;color: #999999;}img{width: 13px;height: 13px;margin-top: 20px;}}
</style>

属性

loading

类型:boolean

默认:false

当 loading 为 true 时将不会触发任何事件, 所以你可以使用它来控制加载数据


completed

类型: boolean

默认: false

当设置为 true 时将不会再触发 infinite-scroll 事件.当所有数据全部加载完毕后,建议设置为 true


init-scroll

类型: boolean

默认: false

如果设置为 true 时,组件加载完毕后将会触发一次 infinite-scroll 事件.通常用来处理页面首次加载时候接收数据.


distance

类型: number

默认: 60

单位: px

显示全部加载等离底部的距离


offset

类型: number

默认: 0

单位: px

有时候你可能希望调节距离底部的距离,来提前触发 infinite-scroll


listens

类型: array

默认: [‘infinite-scroll’, ‘pull-down’, ‘pull-up’]

不在数组中的事件将不会被触发.


container

类型: string

必须: false

所有事件 events 默认绑定在 window ,如果你想自定义外层容器,需要指定其 ref .


事件

infinite-scroll

当容器已经达到窗口底部时触发


pull-down

当容器已经下拉超过 distance 属性时触发


pull-up

当容器已经上拉超过 distance 属性时触发

scrolling

当容器滚动时触发.

有个回调参数,返回当前容器的 (scrollTop, scrollLeft).


Slots

infinite-scroll-loading

当已经滚动到窗口底部,且正在 loading 时显示

pull-down-before

当正在下拉,且下拉距离小于 distance 属性显示

pull-down-ready

当正在下拉,且下拉距离不小于 distance 属性显示

pull-down-loading

当正在下拉,且下拉距离不小于 distance 属性,且松手时数据正在 loading 时显示

pull-up-before

当正在上拉,且上拉距离小于 distance 属性显示

pull-up-ready

当正在上拉,且上拉距离不小于 distance 属性显示

pull-up-loading

当正在上拉,且上拉距离不小于 distance 属性,且松手时数据正在 loading 时显示

completed

当数据加载完毕(completed),且没有加载中(loading,如下拉可以出发刷新)