巷で難しい難しいと言われていた react-dnd でドラッグアンドドロップを実装してみたところ、案外楽だったのでまとめる。 用語整理 DragSource : マウスで掴んでドラッグする対象 DropTarget : ドロップ対象 monitor : drop/hover時に今現在のイベント対象の状態を取り出せるもの 使い方 @DragDropContext を ドラッグアンドドロップしたい領域のコンポーネントに注入する @DropTarget を落としたい先のコンポーネントに注入する @DragSource をドラッグさせたいコンポーネントに注入する たとえばドラッグアンドドロップでリストの要素を入れ替えたい場合、 リスト全体が DragDropContext で、 リスト要素が DragSource かつ DropTarget になる。 実装例 並び替えられるリスト要素の実装 @Dr