ViewTransition: Native React Animation Is FINALLY Here
- React View Transitions 컴포넌트 도입: 브라우저의 네이티브 View Transitions API와 React의 자체 전환 시스템을 결합하여 컴포넌트 애니메이션을 훨씬 쉽게 구현할 수 있게 함. 🚀
- 현재 React Canary 버전에서만 사용 가능: 올해 초 도입되었고 3월에 블로그 게시물이 있었으나, 아직 Canary 버전에서만 접근 가능하며 API 변경 가능성이 있음. 🧪
- 사용법: 애니메이션을 적용할 컴포넌트를
<ViewTransition>으로 감싸고, startTransition 함수를 사용하여 React의 전환 시스템과 브라우저 API를 조율해야 함. 🔄
startTransition의 역할: React에서 낮은 우선순위의 비차단 업데이트를 가능하게 하여, 협력적 스케줄링을 통해 부드러운 사용자 경험을 제공. ✨
- 작동 방식: React는 렌더링 후 커밋 단계에서
<ViewTransition> 컴포넌트를 찾아 관련 전환 유형과 함께 document.startViewTransition을 호출. 🎬
- 다양한 애니메이션 커스터마이징: 5가지 props와 4가지 콜백을 제공하여 애니메이션을 세밀하게 제어하고 사용자 정의 CSS 애니메이션을 적용할 수 있음. 🎨
name prop의 자동화된 부드러운 전환: name prop을 사용하면 React가 각 요소에 고유한 이름을 자동으로 부여하여, 수동 설정 없이도 전환 간에 동일한 요소로 인식하고 부드러운 애니메이션을 생성. 🏷️
- Suspense 지원 및 점진적 향상: Suspense 컴포넌트 내부 및 fallback prop에서도 사용 가능하며, View Transitions를 지원하지 않는 브라우저에서도 앱이 정상 작동하는 점진적 향상 기능을 제공. 🌐
- 기존 솔루션과의 관계: React Router나 Next.js의 View Transitions를 이미 사용 중이라면 즉시 전환할 필요는 없으며, 새로운 컴포넌트나 앱 개발 시 내장 컴포넌트 사용을 권장. 🛣️
- 생산 준비 단계에 근접: 오랜 시간이 걸렸지만, 프로덕션 환경에서 사용될 준비에 한 걸음 더 다가섰다는 점이 긍정적. ✅