useTransition

1. 모듈 불러오기

import {useTransition, animated} from 'react-spring'

2. 사용하기

useTransition 매개변수

  • 첫 번째인자 : 상태 전달(boolean, array, ...)

  • 두 번째인자 : array와 같이 순환되는 item이라면 (item) => item.key 와 같이 item의 키 추출 하나의 단일 요소만 애니메이션 key 한다면 null을 설정해 매개변수 생략

  • 세 번쨰인자 : animation 순서

const [상태, 상태 업데이트 함수] = useState(false)
const transitions = useTransition(상태, null, {
// 기본 스타일 속성 → transition 끝남 
from: { opacity: 0 },
// transition 시작 
enter: { opacity: 1 },
// transition 끝나기 직전 
leave: { opacity: 0 },
})
// map에 전달되는 인자  
// item : 상태 
// key : 배열이라면 useTransition에서 추출한 key 값 (그외엔 하나의 키를 가짐) 
// props : useTransition에 전달 된 스타일 속성 
return transitions.map(({ item, key, props }) => 
    console.log(item) // 상태 
)

2.1 예제

2.1.1 토글 기능 사용

2.2.1 배열

전달되는 상태가 배열이라면 useTransition의 두번째 인자는 null이 아닌 item을 추출하는 식을 사용해야한다.

2.2 API

Property

Type

Description

initial

obj/fn

최초값 (optional, null도 될 수 있음)

from

obj/fn

기준 값 (optional)

enter

obj/fn/array(obj)

animation이 시작할 때 적용되는 것

update

obj/fn/array(obj)

animation이 업데이트 될 때 적용되는 것 (자체 hook으로 새로운 값 업데이트 가능)

leave

obj/fn/array(obj)

animation이 끝날 때 적용되는 것

trail

number

animation 시작 시간 지연(초 단위), enter/update/leave에 추가 가능

unique

bool/fn

true라면, 들어가고 나오는 아이템들은 같은 key를 재 사용함

두 번 이상 렌더링 되지 않도록 하는 속성

reset

ool/fn

‘unique’와 같이 사용되며, enter 아이템들을 처음부터 시작하게 함

onDestroyed

fn

object들이 완전히 사라졌을 때 호출 됨

3. 오류

배열을 상태로 전달 했을 경우 key 값을 설정하지 않으면 전달된 첫 번째 아이템만 출력이 되는 현상이 나타난다. 2.2.1 배열 코드 처럼 고유한 key 값을 전달해서 충돌이 일어나지 않도록 해야한다.

4. 실습

5. 참고

sideToggle 예제이다. useTransition을 사용하여 구현

Last updated