관리 메뉴

프론트엔드 정복하기

intersection observer 를 이용해 infinite scroll 구현하기 본문

JavaScript

intersection observer 를 이용해 infinite scroll 구현하기

GROWNFRESH 2021. 10. 28. 14:15

https://velog.io/@suyeonme/react-Infinite-Scroll-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0

 

[react] Infinite Scroll 구현하기

React에서 Infinite Scroll 구현하기(scroll event, intersectionObserver, useRef)

velog.io

 

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