Framer useInView 커스텀하기
1 minute read
2024-07-28
framer motion 패키지에서 useInView 를 자주 사용하게 된다. (공식문서)
주로 들어왔을 때 로직을 작성하는데 이를 반복적으로 if 를 상단에 처리하게 되는데 커스텀 훅으로 개선할 수 있다.
function useWhenInView(isInView: boolean, callback: () => void) {
useEffect(() => {
if (!isInView) {
return;
}
callback();
}, [isInView, callback]);
}위와 같이 선언하게 되면 뷰포트에 들어왔을 때 로직에만 집중할 수 있다.
아래와 같이 작성 가능해진다.
useWhenInView(isFirstInView, () => {
syncInViewPosition(0);
});
useWhenInView(isSecondInView, () => {
syncInViewPosition(1);
});
useWhenInView(isThirdInView, () => {
syncInViewPosition(2);
});
useWhenInView(isForthInView, () => {
syncInViewPosition(3);
});