页面列表数据无限加载-基于eleement-plus实现

核心实现逻辑:使用elementPlus提供的 v-infinite-scroll 指令 监听是否满足触底条件 ,满足加载条件时让 页数参数加 一获取下一页数据,做新老数据拼接渲染
代码实现:

<div class="body" v-infinite-scroll="load" :infinite-scroll-disabled="disabled">

        <!-- 商品列表-->

        <GoodsItem v-for="goods in goosList" :key="goods.id" :goods="goods" />

</div>

// 获取基础列表数据渲染
const goosList = ref([]);
const reqData = ref({
  categoryId: route.params.id,
  page: 1,
  pageSize: 20,
  sortField: "publishTime",
});

// 加载更多
const disabled = ref(false);
const load = async () => {
  console.log("加载更多");
  // 获取下一页的数据
  reqData.value.page++;
  const res = await postSubCategoryAPI(reqData.value);
  // 新老数据交替
  goosList.value = [...goosList.value, ...res.result.items];
  // 加载完毕,停止监听
  if (res.result.items.length === 0) {
    disabled.value = true;
  }
};

效果图:无限加载数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值