文章详情页
				IntersectionObserver实现加载更多组件demo
浏览:2日期:2022-06-13 08:54:45
					
					
					 实例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加载组件的资料请关注好吧啦网其它相关文章!
 标签:
						JavaScript
					
					
					
					
					
					
					
				排行榜
				
网公网安备