목록 보기
Transition : 쉿, 이제 안전해 나의 작은 Suspense
프론트엔드

Transition : 쉿, 이제 안전해 나의 작은 Suspense

루닛
루닛
2022년 5월 20일

두줄요약

Suspense의 fallback 전환이 유발하는 화면 깜빡임 문제를 짚었습니다. React 18 Transition과 Recoil 지원 기능으로 이전 화면을 유지하는 방법을 소개합니다.

문제 상황

  • Suspense의 렌더링 유예 시 fallback 전환으로 페이지 이동마다 기존 화면이 사라지는 깜빡임
  • 빠른 네트워크 환경에서 로딩 상태가 짧게 노출되며 사용자 오류처럼 인식되는 UI 문제

원인 분석

  • Suspense의 fallback 대체 방식으로 이전 렌더링 결과 미유지
  • Recoil Loadable도 유예 중 빈 contents 전달로 이전 데이터 표시 불가
  • 이전 상태 보존을 위한 별도 상태와 useEffect 추가 시 관심사 분리 및 유지보수성 저하

해결 방법

  • React 18 Transition으로 값 변경에 따른 리렌더링을 변경 완료 시점까지 유예
  • Recoil의 TRANSITION_SUPPORT_UNSTABLE 적용으로 Suspense 기반 데이터 유예 상태 관리 유지

적용해볼 점

  • 데이터 갱신 중 기존 화면 유지가 필요한 목록·페이지 전환에 Transition 검토
  • fallback 표시뿐 아니라 짧은 로딩 구간의 화면 교체 경험 점검

다음 읽기

#React 주제를 다룬 다른 회사 글

React 18 에서 추가된 기능

React 18의 동시 렌더링, automatic batching, startTransition 등 주요 추가 기능을 소개했습니다. Suspense로 데이터 로딩 상태와 UI 표시 순서를 분리하는 방식을 설명합니다.

그린데이터
그린데이터
프론트엔드
전체 보기

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...