一、依赖安装与引入
1.安装 cnpm i vue-infinite-scroll --D
2.按需引入 import infiniteScroll from 'vue-infinite-scroll'
二、使用
1.样式
<div class="scroll-more"
v-infinite-scroll="scrollMore"
infinite-scroll-disabled="busy"
infinite-scroll-distance="410"
v-if="false"
>
<img src="/imgs/loading-svg/loading-spinning-bubbles.svg" alt="" v-show="loading">
</div>
2.代码
export default{
name:'order-list',//orderList订单详情
directives: {
infiniteScroll
},
data(){
return{
loading:true,//是否显示懒加载组件
pageNum:1,//能够自动识别-显示几列-
busy:false,//默认不触发滚动
}
},
mounted(){
this.getOrderList()
},
methods:{
scrollMore(){
this.busy = true
setTimeout(()=>{
this.pageNum++
this.getList()
},500)
},
getList(){//专门给scrollMore使用
this.loading = true
this.$axios.get('/orders',
{
params:{
pageSize:10,//默认是10条
pageNum:this.pageNum
}
}).then((res)=>{
this.list = this.list.concat(res.list)//数组累加
this.loading = false
if(res.hasNextPage){//接口里面是否存在下一页
this.busy = false
}else{
this.busy = true
}
})
},
}
}