프론트엔드 정복하기
intersection observer 를 이용해 infinite scroll 구현하기 본문
https://velog.io/@suyeonme/react-Infinite-Scroll-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0
intersection observer 개념
infiniter 구현하는 법 등 정리하기
범구님 예시
import 'intersection-observer';
import { RefObject, useCallback, useEffect, useRef } from 'react';
export function useIntersectionObserver<T extends HTMLElement>(
effect: IntersectionObserverCallback,
targetRef: RefObject<T | null>,
): void {
const observerRef = useRef<IntersectionObserver | null>(null);
const getObserver = useCallback(() => {
if (!observerRef.current) {
observerRef.current = new IntersectionObserver(effect);
}
return observerRef.current;
}, [effect]);
useEffect(() => {
const observer = getObserver();
const target = targetRef.current;
if (target) {
observer.observe(target);
}
return () => {
if (target) {
observer.unobserve(target);
}
};
}, [targetRef, getObserver]);
}
'JavaScript' 카테고리의 다른 글
모던 Javascript 튜토리얼 - 파트1 (0) | 2022.03.20 |
---|---|
모던 javascript info 번역 사이트 (0) | 2021.12.12 |
useContext 와 MouseMove 이벤트핸들러 (0) | 2021.10.15 |
new Set 객체의 활용 (0) | 2021.10.14 |
Promise resolve 패턴 서치 (0) | 2021.09.28 |