RT. 14 Drag and Drop

하승진·2024년 2월 26일

React 따라잡기

목록 보기
14/34
post-thumbnail

Drag and Drop 기능 구현

1. HTML 드래그 앤 드롭 API 사용해 원하는 목록을 드래그 가능하게 생성

2. 사용자가 드래그를 할 때 적절한 애니메이션

3. 사용자가 드래그를 멈췄는지 확인. 이 순간에도 애니메이션

4. 클라이언트가 목록을 재정렬한 경우 항목의 위치를 새 항목으로 업데이트


react-beautiful-dnd 라이브러리

: 드래그앤 드롭 기능 쉽게 구현 가능하게 해주는 모듈

설치 명령어 => npm install react-beautiful-dnd --save

import

3가지 구성 요소

DragDropContext

드래그 앤 드롭을 활성화하려는 애플리케이션 부분을 래핑

Droppable

드롭할 수 있는 영역. 포함

Draggable

드래그 가능 영역


드래그 앤 드롭 사용

DragDropContext으로 드래그앤드롭 하려는 부분 래핑

드롭 가능한 영역 Droppable태그로 지정, 속성으로 id부여

데이터 객체 배열를 map메소드로 반환되어 생성되는 List 컴포넌트들을 Draggable 태그로 드래그 가능한 영역으로 적용

Draggable 속성으로는 각 객체의 id를 key로, id 데이터를 string으로 변환한 것을 draggableId로 index는 그대로 index로 지정

리스트 컴포넌트에는 생성되는 각 컴포넌트에 넣어야할 provided, snapshot 속성 추가 지정

드래그 이벤트 종료 시(onDragEnd) 이벤트 함수 handleEnd 호출

드래그 이벤트에 대한 데이터 객체를 result라는 인자로 받아 할당

새로 데이터 객체 선언 및 기존 데이터 객체 할당

변경시키는 아이템을 배열에서 splice 함수로 삭제 한 값을 리턴으로 reorderedItem에 할당

새로 생성한 데이터 객체에 드래그 함수로 목적지에 온 index기준 0번 째에 reorderedItem을 추가

새로 업데이트된 데이터 객체를 기존 데이터 객체에 업데이트

profile
기어갈지언정 한 발자국씩이라도 가보자

0개의 댓글