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
Was this helpful?