ドキュメント/はじめに

クイックスタート

3 つのファイルで作る並べ替え可能なリスト。プロバイダー、リスト、そしてその行です。

このページを編集

このページは AI によって翻訳されており、不正確な箇所が含まれている可能性があります。 英語の原文を読む

これが動作する完成形です。行をドラッグするか、Tab で行にフォーカスして Space を押し、矢印キーで動かしてから、もう一度 Space を押してください。

Live

デモを読み込み中…

<script setup lang="ts">
import { DnDProvider } from '@vue-dnd-kit/core';
import TaskList from './TaskList.vue';
</script>

<template>
  <!-- The provider goes around the components that drag (often the whole app). -->
  <DnDProvider>
    <TaskList />
  </DnDProvider>
</template>

ステップごとに

アプリをプロバイダーで囲む

DnDProvider がドラッグを管理します。すべてのコンポーザブルは、プロバイダーの内側に描画されるコンポーネントで実行する必要があります。プロバイダーをテンプレートに含むコンポーネントではありません。

リストを作る

makeSortableList はリストの要素とあなたの配列を受け取ります。返り値の items は、ドラッグ中にリアルタイムで並べ替わるドラフトです。あなたの配列ではなくドラフトを描画し、行のキーには id を使ってください。

行を作る

各行は、自分の要素と描画するアイテムを渡して makeSortableItem を呼び出します。行のキーは item.id から取られます。

ドロップが完了すると、tasks に新しい順序が入ります。これは普通の ref なので、アプリの他の部分も、ほかの変更と同じようにこの変更を受け取ります。

Pinia、サーバーのデータ、イミュータブルなデータを使っていますか?ref の代わりにゲッターを渡し、onDrop で e.preventDefault() を呼んで、e.result を自分で適用してください。