모든 컴포넌트

MotionList

바뀐 항목만 움직이는 데이터 목록.

웹React Native목록

직접 해 보기

예제를 준비하는 중…

가장 짧은 사용법

Todos.jsx
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;

대신 처리하는 일

  • 새 항목은 제한된 시간차로 들어오고 바뀌지 않은 항목은 가만히 있습니다.
  • 지운 항목은 흐름에서 빠진 뒤 제자리에서 사라지고 나머지가 빈자리를 메웁니다.
  • 순서가 바뀐 항목은 새 위치로 미끄러집니다.
  • 이동 중에 또 바뀌어도 속도를 이어받습니다.
  • present={false}는 모든 항목을 내보내고, playKey는 입장을 다시 재생합니다.

이럴 때 쓰세요

  • 할 일 목록.
  • 필터된 검색 결과.
  • 장바구니.

Props

Prop타입기본값설명
itemsreadonly T[]—필수내 데이터 배열.
getKey(item) => string | numberitem.id항목의 고유하고 안정적인 키를 돌려줍니다. 기본값은 item.id, 문자열과 숫자는 그 값 자체입니다.
renderItem(item, index) => ReactNodeitem.label항목을 그립니다.
aselement'div'그릴 요소.
itemAselement'li' | 'div'각 항목의 요소.
itemClassNamestring각 항목 요소의 클래스. 인라인 스타일은 itemStyle.
effect'rise' | 'fade' | 'scale' | 'slide''rise'항목이 들어오고 나가는 방식.
distancenumber16rise와 slide의 이동 거리(픽셀).
staggernumber40들어오는 항목 사이의 밀리초.
order'forward' | 'reverse''forward'시간차의 방향.
presentbooleantruefalse면 레이아웃을 유지한 채 모든 항목을 내보내고, true면 되돌립니다.
initialbooleantrue목록이 마운트될 때 입장을 재생합니다.
playKeystring | number바꾸면 입장을 다시 재생합니다.
transitionTransitionspring들어오고 나가는 항목의 전환.
layoutTransitionTransitionspring새 위치로 미끄러지는 항목의 전환.

그 밖의 props는 그려지는 요소로 전달되므로 className, style, 이벤트 핸들러를 평소처럼 쓸 수 있습니다.

웹과 React Native

각 항목에는 감싸는 요소가 붙고(ul·ol 안에서는 li, 그 밖에는 div, itemAs로 바꿈) itemClassName으로 꾸밉니다.

키는 고유해야 합니다. 전체 높이도 움직이려면 목록을 MotionHeight로 감싸세요.

이 컴포넌트를 쓰는 예제

검색

입력하면 문서를 검색합니다.