오늘은 몇 가지 예시를 통해 React에서 교차 관찰자 API를 사용하는 방법을 살펴보겠습니다.
Mozilla 웹 문서에서는 교차 관찰자 API를 다음과 같이 설명합니다.
모니터링하려는 요소가 다른 요소(또는 뷰포트)에 들어오거나 나갈 때마다 또는 두 요소가 교차하는 값이 요청된 양만큼 변경될 때 실행되는 콜백 함수를 코드에서 등록할 수 있습니다. 이렇게 하면 사이트는 이러한 유형의 요소 교차를 관찰하기 위해 더 이상 메인 스레드에서 어떤 작업도 수행할 필요가 없으며 브라우저는 적합하다고 판단되는 대로 교차 관리를 자유롭게 최적화할 수 있습니다.
간단히 말하면 특정 요소가 뷰포트에 표시되는 시기를 감지할 수 있으며 이는 요소가 원하는 교차 비율을 충족하는 경우에만 발생합니다.
보시다시피 페이지를 아래로 스크롤하면 예상 한도에 도달할 때까지 교차 비율이 증가하고 그 순간 콜백을 실행하는 함수가 실행됩니다.
const observer = new IntersectionObserver(callbackFunction, options) observer.observer(elementToObserver)
교차점 관찰자 생성자 개체에는 두 개의 인수가 필요합니다.
그게 다입니다. 몇 가지 작업을 볼 준비가 되었습니다. 하지만 먼저 각 옵션이 무엇을 의미하는지 알아야 합니다. 옵션 인수는 다음 값을 가진 개체입니다.
const options = { root: null, rootMargin: "0px", threshold: 1 }
이제 React에서 교차 관찰자 API의 구현을 살펴보겠습니다.
const observer = new IntersectionObserver(callbackFunction, options) observer.observer(elementToObserver)
const options = { root: null, rootMargin: "0px", threshold: 1 }
이것은 단지 기본적인 구현일 뿐이며 이를 수행하는 방법에는 여러 가지가 있다는 점을 기억하십시오.
이제 이전과 동일한 코드를 구현하지만 useElementOnScreen이라는 Nu Hook에서 모든 로직을 분리합니다.
const containerRef = useRef(null) const [isVisible, setIsVisible] = useState(false) const callbackFunction = (entries) => { const [entry] = entries setIsVisible(entry.isIntersecting) } const options = { root: null, rootMargin: "0px", threshold: 1.0 } useEffect(() => { const observer = new IntersectionObserver(callbackFunction, options) if (containerRef.current) observer.observe(containerRef.current) return () => { if (containerRef.current) observer.unobserve(containerRef.current) } }, [containerRef, options]) return ( <div className="app"> <div className="isVisible">{isVisible ? "IN VIEWPORT" : "NOT IN VIEWPORT"}</div> <div className="section"></div> <div className="box" ref={containerRef}>Observe me</div> </div> )
<div className="box" ref={containerRef}>Observe me</div>
1- 새로 생성된 후크를 구성 요소로 가져옵니다.
2 - 옵션 개체로 초기화합니다.
3 - 이렇게 마무리합니다.
축하합니다. 교차로 관찰자 API를 성공적으로 사용하고 이에 대한 후크도 만들었습니다!
원래 producthackers가 작성한 React를 사용한 Intersection Observer
이 글을 읽어주셔서 감사합니다. 유용한 정보를 제공해 드릴 수 있기를 바랍니다. 그렇다면 이 글을 추천해주시고, 더 많은 분들이 보실 수 있도록 ♥ 버튼을 눌러주시면 정말 좋겠습니다.
위 내용은 React에서 Intersection Observer를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!