当前位置: 首页 > backend >正文

前端Vue3列表滑动无限加载实现

列表无限加载功能实现

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

代码实现

<div class="body" v-infinite-scroll="load" :infinite-scroll-disabled="disabled"><!-- 商品列表--><GoodsItem v-for="item in goodList" :key="item.id" :goods="item" /></div>

v-infinite-scroll="load":监听是否满足触底条件

:infinite-scroll-disabled="disabled": 是否当前禁用加载

// 获取基础数据列表渲染
const goodList = ref([])
const reqData = ref({categoryId: id,page: 1,pageSize: 20,sortField: 'publishTime'
})const getGoodList = async () => {const res = await getSubCategoryAPI(reqData.value)console.log(res)goodList.value = res.result.items
}// 更多加载
const disabled = ref(false)
const load = async ()=>{console.log('加载更多数据了');// 获取下一页数据reqData.value.page++const res = await getSubCategoryAPI(reqData.value)// 新老数据的拼接goodList.value = [...goodList.value, ...res.result.items] // ...goodList.value老数据 ...res.result.items新数据// 加载完毕停止监听(如果不结束监听一直向下滑动,就会不断发送新的请求,会造成一定的资源浪费)if(res.result.items.length === 0){ // 如果新数据为空,则停止监听(可以根据后端返回的数据来判断)disabled.value = true}
}

由上图可以看出前端不停的在向后端发起新的请求,当页面滑动到底部没有数据之后就不会发送请求,这样我们的前端Vue3列表滑动无限加载实现就完成了

http://www.xdnf.cn/news/9345.html

相关文章:

  • 佰力博科技与您谈谈高温介电温谱仪如何保养
  • ROS2学习(15)------ROS2 TF2 机器人坐标系管理器
  • MySQL问题:MySQL中使用索引一定有效吗?如何排查索引效果
  • LeetCode-栈-最小栈
  • 现代 CSS 高阶技巧:实现平滑内凹圆角的工程化实践
  • UDP 传输时间(延迟)
  • 关于Oracle SGA内存抖动
  • FastAPI 异常处理
  • vscode ssh远程服务端设置
  • OpenCV视觉图片调整:从基础到实战的技术指南
  • PH热榜 | 2025-05-26
  • hive 笔记
  • WEB安全--RCE--webshell HIDS bypass4
  • PostgreSQL auto_explain
  • Unity3D中Mono与IL2CPP对比
  • 使用mermaid快速绘制流程图
  • 3D Tiles高级样式设置与条件渲染(3)
  • 50多种垃圾类型都能清理Wise便携版:系统临时文件 /浏览器缓存秒清理
  • 利用亮数据实现大规模数据自动抓取
  • 项目部署react经历
  • IDEA使用Git进行commit提交到本地git空间后撤回到commit版本之前
  • 本地jar包发布到maven远端
  • Vue 3.0 自定义 Composition API 管理状态
  • 银发团扎堆本地游,“微度假”模式如何盘活银发旅游市场?
  • 医疗HMI设计规范解读:如何平衡合规性与用户体验?
  • Sweet Snippet 之 指数函数优化
  • Spring AI 本地Ollama
  • 嵌入式Linux快速入门第1~2章
  • Selenium 测试框架 - Ruby
  • el-table设置自定义css