码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Vue】实现商品列表的无限加载


    基础思路

    1. 触底条件满足之后 page++,拉取下一页数据
    2. 新老数据做数组拼接
    3. 判断是否已经全部加载完毕,停止监听

    步骤1:加载下一页数据

    重构商品二级分类组件

    注:v-infinite-scroll为elementPlus中Infinite Scroll无限滚动的自定义指令

    <div class="body" v-infinite-scroll="load" >
            
            <GoodsItem v-for="good in goodList" :good="good" :key="good.id">GoodsItem>
    div>
    
    //加载更多
    const load = async () => {  
      // 获取下一页的数据
      reqData.value.page++
      console.log(reqData.value.page)
      const res = await getSubCategoryAPI(reqData.value)
      //新加载的数据与老数据进行拼接合并
      goodList.value = [...goodList.value, ...res.result.items]  
    }
    // 获取二级分类商品
    const goodList = ref([])
    const reqData = ref({
        categoryId: route.params.id,
        page: 1,
        pageSize: 20,
        sortField: 'publishTime'
    })
    const getGoodList = async () => {
        const res = await getSubCategoryAPI(reqData.value)
        goodList.value = res.result.items
    }
    onMounted(() => getGoodList())
    

    步骤2:无数据停止加载

    重构template与script,infinite-scroll-disabled也是Infinite Scroll的指令

    <div class="body" v-infinite-scroll="load" :infinite-scroll-disabled="disabled">
            
            <GoodsItem v-for="good in goodList" :good="good" :key="good.id">GoodsItem>
    div>
    
    // 加载更多
    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]
      // 加载完毕 停止监听
      if (res.result.items.length === 0) {
        disabled.value = true
      }
    }
    
  • 相关阅读:
    一个c程序的内存分布
    【病害识别】基于matlab随机森林苹果病害识别【含Matlab源码 2211期】
    Java Map集合面试题汇总
    一、Unity环境安装
    ESP8266-Arduino编程实例-PCF8575IO扩展器驱动
    汇编攻城记-算术运算ADD/SUB/RSB/ADC/SBC/RSC
    Docker网络原理及Cgroup硬件资源占用控制
    JVM常见的垃圾回收器(详细)
    Python期末复习题:面向对象
    什么是工程项目项目管理工作?其特点是什么?
  • 原文地址:https://blog.csdn.net/Jerryqjr/article/details/139749119
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号