React滚动加载(无限滚动)功能实现

news/2024/9/18 21:16:16/ 标签: react.js, 前端, javascript

在用户滚动到接近页面底部时自动加载更多内容

   :可以将事件绑定在antd的Table组件中的onScroll中

   :也可以将事件绑定在外层的div的onScroll中

 

javascript">const handleScroll = (e) => {const { scrollTop, scrollHeight, clientHeight } = e.target;if (scrollTop + clientHeight >= scrollHeight - 50 && hasMore) {setPageNum((prevPage) => prevPage + 1);}
};
  • const { scrollTop, scrollHeight, clientHeight } = e.target;:

    • 这里通过对象解构,从 e.target(即触发滚动事件的元素)中获取了三个重要的属性:
      • scrollTop: 滚动条距离元素顶部的距离,即用户已经滚动了多少距离。
      • scrollHeight: 整个内容的高度,包括滚动在视窗外的部分,即元素的总高度。
      • clientHeight: 可视区域的高度,即用户能直接看到的部分的高度。
  • if (scrollTop + clientHeight >= scrollHeight - 50 && hasMore):

    • 这个条件判断是在检查用户是否滚动到了接近页面底部。具体解释如下:
      • scrollTop + clientHeight: 这是计算当前用户已经滚动的高度加上可视区域的高度,表示用户现在看到的最底部的高度。
      • scrollHeight - 50: 这是指整个内容高度减去 50 像素,表示接近底部(还剩 50 像素)的高度。
    • 判断逻辑: 如果用户滚动的总高度(scrollTop + clientHeight)大于或等于 scrollHeight - 50,说明用户已经接近页面底部,剩下的内容高度小于等于 50 像素时,且 hasMoretrue(表示还有更多内容可以加载),就会触发加载更多内容的逻辑。
  • setPageNum((prevPage) => prevPage + 1);:

    • 当上述条件满足时,执行这个函数,将当前的页码(pageNum)加 1,从而触发下一页数据的加载。

http://www.ppmy.cn/news/1518338.html

相关文章

无人机之电池篇

无人机电池作为无人机的重要组成部分,其性能、使用、保养及选择都至关重要。以下是对无人机电池的综合介绍: 一、无人机电池的基本参数 电池容量:电池容量直接影响无人机的续航能力。大容量电池,如5000mAh的电池,能提…

【微信小程序】微信小程序如何使用 MobX 进行状态管理?

微信小程序官方在 2019 年针对小程序发布了 MobX 辅助绑定库,可以让我们在微信小程序中使用 Mobx 进行状态管理: mobx-miniprogram:相当于 MobX;mobx-miniprogram-bindings:针对小程序的 MobX 辅助绑定库,…

Unity 中使用SQLite数据库

文章目录 0.参考文章1.Presentation —— 介绍2.(SQLite4Unity3d)Unity中直接使用SQLite的插件3.创建数据库4.创建表5.Navicat Premium(数据库可视化)6.增删改查6.1 增6.2 删6.3 改6.4 查 0.参考文章 https://blog.csdn.net/Chin…

查看特定软件网络请求信息

开始 运行 输入 wmic 再输入 process get ProcessId,executablepath 获取指定软件的 pid,例如获取的 pid 是 11008 再 开始 运行 输入cmd 输入 netstat -ano|findstr 11008 即可获取该程序的网络请求信息 参考 https://blog.csdn.net/zhangge360/article/detai…

微信小程序服务器费用一年多少?微信小程序开发

在互联网时代,微信小程序已成为众多企业和个人拓展业务、提升服务品质的有力工具。然而对于许多准备涉足小程序领域的朋友来说【开发一个小程序大概需要多少钱】以及【微信小程序服务器费用一年需要多少】是首要关注的问题,今天飞飞将和你们分享小程序服…

两个月冲刺软考——SQL基础:排序、分组和聚合函数的实用指南

1.涉及到的部分基本语法 1.1 ORDER BY 与 GROUP BY ORDER BY用于对查询结果进行排序;默认是升序(ASC),可以指定降序(DESC)。 GROUP BY用于将数据按照一个或多个列进行分组;通常与聚合函数&am…

Mybatis框架——缓存(一级缓存,二级缓存)

本章将简单介绍Mybatis框架中的缓存,欢迎大家点赞➕收藏,蟹蟹!!!💕 🌈个人主页:404_NOT_FOUND 🌈MyBatis环境搭建步骤(超全解析!!&am…

网络安全 DVWA通关指南 DVWA File Upload(文件上传)

DVWA File Upload(文件上传) 文章目录 DVWA File Upload(文件上传)修复建议 LowMediumHighImpossible 修复建议 1、使用白名单限制可以上传的文件扩展名 2、注意0x00截断攻击(PHP更新到最新版本) 3、对上传…

关键字之sizeof

接下来我讲的是之前我提到过的C语言关键字 sizeof同时它也是C语言提供的操作符(运算符) 它的使用形式有两种 1 sizeof(类型) 2 sizeof 表达式 sizeof返回某种数据类型或某个值占用的字节数量,它的参数可以是数据类型…

怎样通过bs4找出程序中 标签<div class=“List2“>中所有的<li>的内容?

怎样通过bs4找出程序中 标签<div class"List2">中所有的<li>的内容&#xff1f; 可以使用 BeautifulSoup 的 find_all 方法来找到标签为 <div class"List2"> 中的所有 <li> 标签&#xff0c;并获取其内容。 以下是一个示例代码&…

【面试经验】美团基础研发部产品经理面试经验

3.12 投递 4.1 一面 4.11 二面 4.17 oc但拒 一面内容&#xff1a; 1、一个指数增长的脑经急转弯 2、对向量和向量值如何理解 ——类比函数&#xff0c;目的是映射和转化 3、transformer有没有看&#xff08;问到了注意力机制&#xff09; ——transformer的本质是一个编码…

http连接处理

分析http类及请求接收 基础 epoll epoll_create函数 #include <sys/epoll.h> int epoll_create(int size) 创建一个指示epoll内核事件表的文件描述符&#xff0c;该描述符将用作其他epoll系统调用的第一个参数&#xff0c;size不起作用。 epoll_ctl函数 #include …

基于Python的热门旅游景点数据分析系统【python-爬虫-大数据定制】

&#x1f496;&#x1f525;作者主页&#xff1a;毕设木哥 精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; 实战项目 文章目录 实战项目 一、基于Python的热门旅游景点数…

sheng的学习笔记-AI-半监督聚类

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 半监督学习&#xff1a;sheng的学习笔记-AI-半监督学习-CSDN博客 聚类&#xff1a;sheng的学习笔记-AI-聚类(Clustering)-CSDN博客 均值算法&#xff1a;sheng的学习笔记-AI-K均值算法_k均值算法怎么算迭代两次后的最大…

论文阅读:VideoMamba: State Space Model for Efficient Video Understanding

论文地址&#xff1a;arxiv 摘要 为了解决视频理解中的局部冗余与全局依赖性的双重挑战。作者将 Mamba 模型应用于视频领域。所提出的 VideoMamba 克服了现有的 3D 卷积神经网络与视频 Transformer 的局限性。 经过广泛的评估提示了 VideoMamba 的能力&#xff1a; 在视觉领…

Zookeeper 日志输出到指定文件夹,并按照日期轮循输出

更改日志输出路径 如果不做修改&#xff0c;zookeeper的日志信息默认都打印到了zookeeper.out文件中&#xff0c;这样输出路径和大小没法控制&#xff0c;因为日志文件没有轮转。所以需要修改日志输出方式。具体操作如下&#xff1a; 1.修改${zkhome}/bin/zkEnv.sh ZOO_LOG_…

我的推荐:腾讯云罗云《从零构建向量数据库》

在2024年8月&#xff0c;好几本和数据库相关的图书相继出版&#xff0c;我以为&#xff0c;这恰恰是数据库领域蓬勃向上的一种表现。 数据库需要更多的人关注&#xff0c;哪怕是谈论&#xff0c;所以我的《数据库简史》是一种尝试&#xff0c;希望以一种科普的风格&#xff0c;…

信息安全数学基础(4)最大公因数

前言 在信息安全数学基础中&#xff0c;最大公因数&#xff08;Greatest Common Divisor, GCD&#xff09;是一个核心概念&#xff0c;它在密码学、数论等多个领域都有广泛应用。以下是对最大公因数的详细阐述&#xff1a; 一、定义 设a和b是两个非零整数&#xff0c;若整数d同…

框架 +【Mybatis】概述 以及 基础环境搭建

目录 什么是框架&#xff1f; java后端框架包括 Mybatis概述 1、背景介绍 2、mybatis介绍 Mybatis环境搭建 1.创建一个maven项目 2.导入mysql数据库驱动包 导入mybatis依赖的jar包 3.创建一个全局的mybatis配置文件 4.创建数据库,创建表,准备数据 5.创建一个访问接口…

PHP一体化解决方案高效整合与优化学校管理系统小程序源码

一体化解决方案&#xff0c;让学校管理系统焕发新生✨ &#x1f3eb; 开篇&#xff1a;传统管理的瓶颈与挑战 在快节奏的教育时代&#xff0c;传统的学校管理系统是否让你感到力不从心&#xff1f;&#x1f914; 信息孤岛、流程繁琐、效率低下...这些问题是否正困扰着你的工作…