React intersection observer 는 웹 개발자들이 요소의 가시성과
화면 내 위치에 대한 정보를 얻을 수 있는 강력한 라이브러리 입니다.
이 글에서는 React Intersection observer 의 사용법과 기능에 대해 자세히
알아보도록 하겠습니다.
Observer API 란?
Observer API 는 웹 애플리케이션에서 시스템 이벤트 및 상태 변화를 감지하는 데 사용되는 javascript API 입니다. 이 API 는 브라우저에서 실행되는 애플리케이션에서 사용자의 시스템 환경과 관련된 정보를 제공합니다.
observer API 는 사용자의 네트워크 연결 상태, 배터리 수준, 장치 방향, 화면 밝기 등과 같은 정보를 확인할 수 있습니다.
따라서 이를 통해 사용자에게 최적화된 경험을 제공할 수 있습니다.
react intersection observer 란?
React Intersection Observer 은 웹 개발에서 사용되는 강력한 라이브러리로, 요소의 가시성 및 화면 내 위치를 모니터링하는 데 도움을 줍니다. 이 라이브러리는 React 애플리케이션에서 요소가 화면에 보이는지 여부를 확인하고 이에 따른 작업을 수행할 수 있게 해줍니다.
설치 및 사용법
React Intersection observer 를 사용하려면 먼저 패키지를 설치해야 합니다.
npm install react-intersection-observer
yarn add react-intersection-observer
React Intersection observer 을 사용하여 요소의 가시성을 확인하는 가장 간단한 방법은 컴포넌트를 작성하고 IntersectionObserver 컴포넌트로 감싸는 것입니다.
import { useInView } from "react-intersection-observer";
const MyComponent = () => {
const [ref, inView] = useInView();
return (
<div ref={ref}>
{inView ? "보입니다." : "안보입니다."}
</div>
)
}
여러가지 옵션들
React Intersection observer 을 사용하면 여러 옵션과 이벤트 핸들러를 활용할 수 있습니다.
React Intersection observer 은 기본적으로 화면 전체를 루트로 삼지만, 마진을 추가하여 화면에 요소가 나타나기 전에 이벤트를
발생시키거나 특정 요소를 루트로 설정하여 특정 요소가 보일 때 React Intersection observer 을 적용한 요소를 트리거 할 수 있습니다.
const [ref, inView] = useInView({
root: document.querySelector("#scroll-container"),
rootMargin: '10px',
})
또한 가시성을 감지하는 동안 트리거 및 이벤트 핸들러를 사용하여 원하는 작업을 수행할 수 있습니다.
const [ref, inView] = useInView({
threshold: 0.5, // 가시성이 50% 일떄 트리거
onChange: (inView) => {
if(inView) {
// 요소가 보일 때 실행할 작업
} else {
// 요소가 화면에서 사라질 때 실행할 작업
}
}
})
어떨 때 활용할까요??
lazy loading
Lazy Loading 이미지를 구현하고 싶을 때 해당 라이브러리를 사용하여 이미지가 화면에 보일 때 이미지를 로딩할 수 있습니다.
무한 스크롤
무한 스크롤을 구현하려면 페이지가 스크롤될 때 추가 컨텐츠를 로드하는 것을 감지할 수 있습니다.
애니메이션 효과
요소가 화면에 보일 때 애니메이션 효과를 부여할 수 있습니다.
'라이브러리' 카테고리의 다른 글
| axios Interceptors (4) | 2024.09.01 |
|---|---|
| Jotai (1) | 2024.08.24 |
| React hook form (0) | 2024.07.26 |
| browser-image-compression (1) | 2024.07.15 |
| React 에서 emtion 사용하기 (1) | 2024.07.09 |