모든 컴포넌트

MotionPager

데이터로 만드는 넘기는 페이지. 온보딩, 캐러셀, 탭 패널.

웹React Native선택과 넘기기

직접 해 보기

예제를 준비하는 중…

가장 짧은 사용법

Onboarding.jsx
<MotionPager
  items={slides}
  index={page}
  onIndexChange={setPage}
  gap={16}
  renderItem={(slide) => <Slide slide={slide} />}
/>;

대신 처리하는 일

  • 페이지가 스와이프와 마우스 드래그를 따라오고, 양 끝에서 버티며, 손을 뗀 속도로 멈춥니다.
  • 빠르게 튕기면 항상 한 장 넘어가고, 한 번의 동작으로 두 장 이상 넘어가지 않습니다.
  • 가로 트랙패드 스크롤로도 넘어가며, 관성 꼬리는 무시합니다.
  • 포커스가 있으면 방향키, Home, End가 동작하고 세로 스크롤은 그대로입니다.
  • 현재 페이지가 아닌 페이지는 비활성입니다.

이럴 때 쓰세요

  • 온보딩 흐름.
  • 사진 캐러셀.
  • MotionHighlight와 짝을 이룬 넘기는 탭 패널.

Props

Prop타입기본값설명
itemsreadonly T[]—필수내 데이터 배열.
indexnumber보여 줄 페이지. 생략하면 페이저가 직접 관리합니다.
defaultIndexnumber0index를 제어하지 않을 때의 시작 페이지.
onIndexChange(index, item) => void스와이프, 키, 휠 동작이 멈추는 즉시 인덱스와 항목으로 실행됩니다.
getKey(item) => string | numberitem.id항목의 고유하고 안정적인 키를 돌려줍니다. 기본값은 item.id, 문자열과 숫자는 그 값 자체입니다.
renderItem(item, { index, active }) => ReactNodeitem.label페이지를 그립니다. 인덱스와 현재 페이지 여부를 받습니다.
gapnumber0페이지 사이 간격(픽셀).
itemClassNamestring각 항목 요소의 클래스. 인라인 스타일은 itemStyle.
transitionTransitionspring시간 곡선 { duration, easing } 또는 스프링 { tempo: 'spring', spring }. 스프링은 끊겨도 속도를 이어갑니다.

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

웹과 React Native

index는 제어할 수도 있고(onIndexChange(index, item)이 멈출 때마다 알려 줌), defaultIndex로 페이저에 맡길 수도 있습니다.

React Native에서도 같은 컴포넌트와 props가 동작합니다.

이 컴포넌트를 쓰는 예제

검색

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