ilokesto

Observer

Observer는 useIntersectionObserver를 통해 IntersectionObserver를 사용하고, 관찰 중인 div가 intersecting일 때만 children을 렌더링합니다.

import { Observer } from '@ilokesto/utilinent';

<Observer fallback={<CardPlaceholder />} rootMargin="120px" triggerOnce>
  <ExpensiveCard />
</Observer>

프로퍼티

PropType설명
childrenReactNode | (isIntersecting) => ReactNodeintersecting일 때 렌더링할 content입니다.
fallbackReactNodeintersecting이 아닐 때 렌더링됩니다.
thresholdnumber | number[]Intersection threshold입니다. 기본값은 0입니다.
rootMarginstringObserver root margin입니다. 기본값은 "0%"입니다.
triggerOnceboolean첫 intersection 이후 observing을 멈춥니다.
onIntersect(isIntersecting, entry) => voidinitial observation 이후 entering intersection 시 호출됩니다.
keepMeasurablebooleancontent가 없어도 관찰 가능하도록 최소 1×1px box와 display: block을 강제합니다. 기본값은 false입니다.

Observer는 Show.div를 통해 렌더링되므로 observed element는 div이고 일반 div props/ref를 받을 수 있습니다.

목차