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

简介: 【8月更文挑战第28天】

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

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

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

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 像素时,且 hasMore 为 true(表示还有更多内容可以加载),就会触发加载更多内容的逻辑。
setPageNum((prevPage) => prevPage + 1);:

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

相关文章
|
5月前
|
前端开发
React查询、搜索类功能的实现
React查询、搜索类功能的实现
55 0
|
8天前
|
移动开发 前端开发
react项目配合diff实现文件对比差异功能
在React项目中,可以使用`diff`库实现文件内容对比差异功能。首先安装`diff`库,然后在组件中引入并使用`Diff.diffChars`或`Diff.diffLines`方法比较文本差异。通过循环遍历`diff`结果,可以生成不同样式的HTML元素来高亮显示文本差异。
19 1
react项目配合diff实现文件对比差异功能
|
9天前
|
前端开发
React 中购物车功能实现(全选多选功能实现)
React 中购物车功能实现(全选多选功能实现)
|
5天前
|
存储 移动开发 前端开发
初探react,用react实现一个todoList功能
该文章通过创建一个TodoList应用来介绍React的基础知识,包括环境搭建、组件创建、状态管理和事件处理,并演示了如何使用React Hooks来优化组件逻辑。
|
2月前
|
存储 JavaScript 前端开发
探索React状态管理:Redux的严格与功能、MobX的简洁与直观、Context API的原生与易用——详细对比及应用案例分析
【8月更文挑战第31天】在React开发中,状态管理对于构建大型应用至关重要。本文将探讨三种主流状态管理方案:Redux、MobX和Context API。Redux采用单一存储模型,提供预测性状态更新;MobX利用装饰器语法,使状态修改更直观;Context API则允许跨组件状态共享,无需第三方库。每种方案各具特色,适用于不同场景,选择合适的工具能让React应用更加高效有序。
43 0
|
5月前
|
前端开发
React 仿淘宝图片放大镜功能
React 仿淘宝图片放大镜功能
111 0
|
5月前
|
存储 前端开发 JavaScript
【亮剑】在React中,处理`onScroll`事件可实现复杂功能如无限滚动和视差效果
【4月更文挑战第30天】在React中,处理`onScroll`事件可实现复杂功能如无限滚动和视差效果。类组件和函数组件都能使用`onScroll`,通过`componentDidMount`和`componentWillUnmount`或`useEffect`添加和移除事件监听器。性能优化需注意节流、防抖、虚拟滚动、避免同步计算和及时移除监听器。实战案例展示了如何用Intersection Observer和`onScroll`实现无限滚动列表,当最后一项进入视口时加载更多内容。合理利用滚动事件能提升用户体验,同时要注意性能优化。
401 0
|
5月前
|
JavaScript 前端开发
在React和Vue中实现锚点定位功能
在React和Vue中实现锚点定位功能
119 1
|
JavaScript 前端开发
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能5
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能5
40 0
|
JavaScript 前端开发
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能4
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之Dialog表单提交,ICon样式事件,删除功能4
38 0

热门文章

最新文章

下一篇
无影云桌面