vue使用mintUI,滑动到底部自动加载(infinte-scroll)

本文介绍了一种利用无限滚动实现前后端数据交互的方法,重点在于动态加载数据,而非固定前端设置。通过axios请求后端接口,获取分页数据,并将其追加到现有数据列表,同时展示了具体的Vue.js实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做此项目与官网的区别在于,数据总数,页码总数是由后台返回,而非前端设置

<ul v-infinite-scroll="loadMore" infinite-scroll-disabled="loading" infinite-scroll-distance="10">
    <li v-for="(item,index) in records" :key="index">	
    	<span class="nickname">{{item.nickName}}</span>
		<span class="date">{{item.createTime}}</span>
    </li>
</ul>
res返回的数据格式如下
res:{
	data:{
		pages:2,
		tota;:35,
		records:[{
				nickname:'Tony',
				createTIme:'1568738766'
				},
				{
				nickname:'James',
				createTIme:'1536746827'
				}],
		}
}
data() {
    return {
      paramId:'2e78542asd812e1', // 数据在数据库中存放的ID
      current: 0, // 查询评论的页码数
      pages: "", //总评论页码数
      loading:false
    };
 },
methods:{
 	loadMore(){
        this.listForCom();
    },
    listForCom() {
      // 获取评论列表
      let self = this;
      // 发请求所需要的参数
      var commentParams = { current: this.current, sectionId: this.paramId };
      // 请求的配置
      var commentOptions = {
        method: "POST",
        headers: { "content-type": "application/x-www-form-urlencoded" },
        data: qs.stringify(commentParams),
        url: "/share/comment/list"
      };
      // 发送请求
      this.$axios(commentOptions)
        .then(res => {
          if (res.data) {
            self.pages = res.data.pages;//将从后台获取的页码总数存入data中
            if (res.data.records) {
              // 将每一次获取到的数据拼接在已有的数据后面
              self.records = self.records.concat(res.data.records);
            }
            ++this.current; // 递增页码
            // 当获取到的数据量等于总的数据量时,禁用加载
            if(self.records.length == res.data.total){
                self.loading = true;
            }
          } 
        })
        .catch(err => console.log(err));
    },
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值