IntersectionObserver实现加载更多组件demo
- 技术交流
- 2024-10-01 11:40:01
实例
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= ({ 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 ( ); }; export default LoadMore;
文中注释已对代码进行详解说明,以上就是IntersectionObserver实现加载更多组件demo的详细内容,更多关于IntersectionObserver加载组件的资料请关注讯客其它相关文章!
IntersectionObserver实现加载更多组件demo由讯客互联技术交流栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“IntersectionObserver实现加载更多组件demo”