IntersectionObserver实现加载更多组件demo
更新时间:2023年07月12日 09:17:06 作者:Best_白水
这篇文章主要为大家介绍了IntersectionObserver实现加载更多组件demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
实例
import { useEffect, useRef } from 'react'; import { Spin } from 'antd'; import type { FsFC } from './types'; import './index.less'; type LoadMoreProps = { root?: Element | null; // 跟哪个元素重叠不传默认则是 整个浏览器窗口,一般是父元素 isLoading: boolean; // 用来判断如果 没有在请求列表才回执行 more: () => void; }; const LoadMore: FsFC<LoadMoreProps> = ({ root = null, isLoading, more }) => { const loadMoreRef = useRef(null); /** 建立加载更多观察者 */ const loadMoreOb = () => { if (!loadMoreRef.current) { return; } const ob = new IntersectionObserver( (entries) => { const [entry] = entries; // 有重叠,并且没有在请求 if (entry.isIntersecting && !isLoading) { more(); } }, { root, threshold: 1, }, ); ob.observe(loadMoreRef.current); }; useEffect(() => { loadMoreOb(); }, []); return ( <div className="load-more" ref={loadMoreRef}> <Spin /> </div> ); }; export default LoadMore;
文中注释已对代码进行详解说明,以上就是IntersectionObserver实现加载更多组件demo的详细内容,更多关于IntersectionObserver加载组件的资料请关注脚本之家其它相关文章!
相关文章
使用react-virtualized实现图片动态高度长列表的问题
一般我们在写react项目中,同时渲染很多dom节点,会造成页面卡顿, 空白的情况。为了解决这个问题,今天小编给大家分享一篇教程关于react-virtualized实现图片动态高度长列表的问题,感兴趣的朋友跟随小编一起看看吧2021-05-05详解React Native开源时间日期选择器组件(react-native-datetime)
本篇文章主要介绍了详解React Native开源时间日期选择器组件(react-native-datetime),具有一定的参考价值,有兴趣的可以了解一下2017-09-09Can't perform a React state update on an unmoun
这篇文章主要为大家介绍了Can't perform a React state update on an unmounted component报错解决方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-12-12
最新评论