ドキュメント/API

makeSortableItem

並べ替え可能なリストまたはツリーの行を登録します。ドラッグでき、ほかのアイテムのために場所を空け、自分の位置に着地します。

このページを編集

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

function makeSortableItem<TData = unknown>(  target: MaybeElementRef,  options: SortableItemOptions<TData>,): SortableItemReturn;

要素を並べ替え可能なリストまたはツリーの行にします:ドラッグでき、場所を空け、自分の位置に着地します。makeSortableList(または makeSortableTree)を呼んだコンポーネントの内側で描画されるコンポーネントで呼び出してください。そこで複数のリストが作られている場合、行は自分を含む要素を持つ最も内側のリストに加わります。行は item(リストの getKey でキーを決めます。デフォルトは item.id)または id で識別します。

const el = useTemplateRef<HTMLElement>('el');
const { isPlaceholder, index } = makeSortableItem(el, { item: () => props.task, handle: '.grip' });

並べ替え可能なリストを参照してください。

Live

デモを読み込み中…

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

<template>
  <DnDProvider>
    <TodoList />
  </DnDProvider>
</template>

オプション

id か item を渡してください(両方ある場合は id が優先)。並べ替えのキーはデータから取る必要があります:自動生成の id は、コンポーネントが作り直されるたび(別のリストへの移動、仮想リストによる再利用)に変わり、ドラッグがアイテムを見失ってしまいます。

canDrag 以外のオプションは値、ref、ゲッター(overlay、dropAnimation:値または ref)を受け付け、makeDraggable でのものと同じ意味を持ちます。keyboardMode はありません:キーボードは並べ替え可能なアイテムを位置ごとに動かします。

Key値 · ref · ゲッター

リスト内でのアイテムのキー。仮想リストでは、ゲッターにすると常に最新に保たれます。

unknown値 · ref · ゲッター

この要素が描画するアイテム。例:() => props.task。キーは所属するリスト(またはツリー)の getKey から取られ、デフォルトは item.id です。

Component値 · ref

このアイテム用のオーバーレイコンポーネント。リストの overlay より優先されます。ドラッグ中に切り替えた ref は、すぐにそれを入れ替えます。

DropAnimation値 · ref

このアイテムのドラッグが終わったときのオーバーレイの着地の仕方。リストの dropAnimation より優先されます。ドロップ時に読み取られます。

Modifier[]値 · ref · ゲッター

このアイテムのドラッグに使うモディファイア。プロバイダーのものの後に適用され、リストの modifiers より優先されます。

'x' | 'y'値 · ref · ゲッター

このアイテムのドラッグを 1 つの軸('x'、'y')に固定します。リストの axis より優先されます。

MaybeElement | string値 · ref · ゲッター

アイテムの中でドラッグを始める要素またはセレクター(属性もこちらに付きます)。

boolean値 · ref · ゲッター

true:このアイテムはドラッグできません(無効なリストのすべてのアイテムと同じ)。

string | string[]値 · ref · ゲッター

このアイテムの型(1 つまたは複数)。group.put のルールとドロップターゲットの accept に使われます。デフォルト:リストのグループの名前。

TData値 · ref · ゲッター

ドラッグに運ばせたい任意のデータ:イベントとドロップターゲットは active.data として読み取ります。

string値 · ref · ゲッター

人がアイテムを呼ぶ名前:スクリーンリーダー向けのテキストはキーの代わりにこれを読み上げます(Picked up Tomato at position 2 of 5 in Garden)。イベントでは active.label と items に入ります。

ActivationOptions値 · ref · ゲッター

リスト(またはツリー)とプロバイダーの activation を上書きします。押下の開始時に読み取られます。

(event: PointerEvent | KeyboardEvent) => boolean

追加の関門。たとえば、キーを押している間だけドラッグできるようにします。

boolean値 · ref · ゲッター

role/tabindex/aria-* 属性を設定します(デフォルトは true)。ユーザー自身の設定を上書きすることはありません。ライブに反映:オフにすると、ライブラリが設定したものが取り除かれます。

boolean | NativeDragOptions値 · ref · ゲッター

このアイテムのマウスドラッグはブラウザー自身のドラッグになり、ページの外へ出られます(DraggableOptions.native を参照)。アイテム自体も運びます:アプリの別のウィンドウにある同じグループのリストがそれを受け入れ、受け入れられると、アイテムはこのリストから出ていきます('move')。

返り値

makeSortableItem が返すもの。

ComputedRef<boolean>

このアイテムがドラッグされている(マルチドラッグのほかのアイテムでも true)か、オーバーレイがまだ着地中です。

ComputedRef<boolean>

この要素は、ドラッグ中のアイテムが着地する位置です:アクティブなアイテムの位置。マルチドラッグの 'group' モードでは、一緒に移動するアイテムの位置も含みます。

WritableComputedRef<boolean>

プロバイダーの選択に含まれています:選択中のアイテムを 1 つドラッグすると全部を運びます。値を設定すると選択・選択解除できます。

ComputedRef<SortableIndicator | null>

インジケーターモード:リストの indicator がこのアイテムに付いている間はその値、それ以外は null。side はラインが入る場所を示し、ツリーでは depth と parentKey がドロップの着地先を示します(side: 'inside':このアイテムの中へ)。

ComputedRef<number>

描画されたドラフトでのインデックス。不明な場合は -1。