JavaScript

超轻量级php框架startmvc

使用vue-infinite-scroll实现无限滚动效果

更新时间:2020-07-14 01:12:01 作者:startmvc
vue-infinite-scroll插件可以无限滚动实现加载更多,其作用是是当滚动条滚动到距离底部的指

vue-infinite-scroll插件可以无限滚动实现加载更多,其作用是是当滚动条滚动到距离底部的指定高度时触发某个方法。

https://github.com/ElemeFE/vue-infinite-scroll/

https://www.npmjs.com/package/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实现无限滚动效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

vue infinite scroll infinite scroll无限滚动