使用vue-infinite-scroll实现无限滚动效果
程序员文章站
2022-04-09 12:55:54
vue-infinite-scroll插件可以无限滚动实现加载更多,其作用是是当滚动条滚动到距离底部的指定高度时触发某个方法。
https://github.com...
vue-infinite-scroll插件可以无限滚动实现加载更多,其作用是是当滚动条滚动到距离底部的指定高度时触发某个方法。
https://github.com/elemefe/vue-infinite-scroll/
npm i vue-infinite-scroll --save
main.js使用
import vueiinfinite from 'vue-infinite-scroll' vue.use(vueiinfinite) <div v-infinite-scroll="loadmore" infinite-scroll-disabled="busy" infinite-scroll-distance="10"> <div class="loading">加载中...</div> </div>
1.loadmore是方法,里面是要执行的代码
2.busy的值是true的时候,就不再加载,如果是false就执行加载
3.10表示距离底部为10 的时候就执行loadmore方法
loadmore () { this.busy = true //把busy置位true,这次请求结束前不再执行 settimeout(() => { this.page++ this.getgoodlists(true) //调用获取数据接口,并且传入一个true,让axios方法指导是否需要拼接数组。 }, 500) } getgoodlists (flag) { var param = { page: this.page, pagesize: this.pagesize, sort: this.sortflag ? 1 : -1 } axios.get('/goods', {params: param}).then((response) => { let res = response.data if (flag) { this.goodlist = this.goodlist.concat(res.result.list) //如果是flagtrue,则拼接数组。 if (res.result.count === 0) { this.busy = true } else { this.busy = false } } else { this.goodlist = res.result.list this.busy = false 第一次进来的时候,把busy置位false。执行loadmore的方法 } }) },
总结
以上所述是小编给大家介绍的使用vue-infinite-scroll实现无限滚动效果,希望对大家有所帮助