Documentación/API
makeSortableItem
Registra una fila de una lista o de un árbol ordenable — se arrastra, hace sitio y aterriza en su hueco.
Esta página la ha traducido una IA y puede contener imprecisiones. Leer el original en inglés
function makeSortableItem<TData = unknown>( target: MaybeElementRef, options: SortableItemOptions<TData>,): SortableItemReturn;Convierte un elemento en una fila de una lista ordenable o de un árbol: se arrastra, hace sitio y aterriza en su hueco. Llámalo en un componente renderizado dentro del que llamó a makeSortableList (o makeSortableTree); si allí se crearon varias listas, la fila se une a la más interior cuyo elemento la contiene. Identifica la fila con item (con la clave que da getKey de la lista, item.id por defecto) o con id.
const el = useTemplateRef<HTMLElement>('el');
const { isPlaceholder, index } = makeSortableItem(el, { item: () => props.task, handle: '.grip' });
Consulta Listas ordenables.
Cargando la demo…
<script setup lang="ts">
import { DnDProvider } from '@vue-dnd-kit/core';
import TodoList from './TodoList.vue';
</script>
<template>
<DnDProvider>
<TodoList />
</DnDProvider>
</template>Opciones
Pasa id o item (id tiene prioridad si se dan los dos). Las claves ordenables deben salir de los datos: un id automático cambiaría cada vez que se vuelve a crear el componente (movido a otra lista, reciclado por una lista virtual), y el arrastre perdería el ítem.
Las opciones, salvo canDrag, aceptan un valor, una ref o un getter (overlay, dropAnimation: un valor o una ref) y significan lo mismo que en makeDraggable. No hay keyboardMode: el teclado mueve un ítem ordenable por huecos.
Keyvalor · ref · getterClave del ítem en su lista. Un getter la mantiene actualizada en las listas virtuales.
unknownvalor · ref · getterEl ítem que renderiza este elemento, por ejemplo () => props.task. Su clave sale del getKey de la lista (o del árbol) a la que pertenece, por defecto item.id.
Componentvalor · refComponente de overlay para este ítem; tiene prioridad sobre el overlay de la lista. Una ref cambiada a mitad del arrastre lo cambia al instante.
DropAnimationvalor · refCómo aterriza el overlay cuando termina un arrastre de este ítem; tiene prioridad sobre la dropAnimation de la lista. Se lee al soltar.
Modifier[]valor · ref · getterModificadores para los arrastres de este ítem, después de los del provider; tienen prioridad sobre los modifiers de la lista.
'x' | 'y'valor · ref · getterBloquea en un eje los arrastres de este ítem ('x', 'y'); tiene prioridad sobre el axis de la lista.
MaybeElement | stringvalor · ref · getterElemento o selector dentro del ítem que inicia el arrastre (y recibe los atributos).
booleanvalor · ref · gettertrue: el ítem no se puede arrastrar (como cualquier ítem de una lista desactivada).
string | string[]valor · ref · getterSu tipo o tipos, para las reglas group.put y el accept de los destinos de drop. Por defecto: el nombre del grupo de su lista.
TDatavalor · ref · getterCualquier cosa que deba llevar el arrastre: los eventos y los destinos de drop lo leen como active.data.
stringvalor · ref · getterEl nombre que la gente le da al ítem: los textos para lectores de pantalla lo dicen en lugar de su clave (Picked up Tomato at position 2 of 5 in Garden). Los eventos lo llevan en active.label y en items.
ActivationOptionsvalor · ref · getterSustituye la activation de su lista (o de su árbol) y la del provider. Se lee cuando empieza una pulsación.
(event: PointerEvent | KeyboardEvent) => booleanFiltro adicional, por ejemplo arrastrar solo mientras se mantiene una tecla.
booleanvalor · ref · getterPone los atributos role/tabindex/aria-* (true por defecto), sin sobrescribir nunca los del usuario. En vivo: desactivarlo elimina lo que puso la biblioteca.
boolean | NativeDragOptionsvalor · ref · getterUn arrastre con el ratón es el arrastre propio del navegador, que puede salir de la página (consulta DraggableOptions.native). También lleva el ítem: las listas de su grupo en otra ventana de la app lo aceptan, y cuando una lo hace, sale de esta lista ('move').
Valor devuelto
Lo que devuelve makeSortableItem.
ComputedRef<boolean>Este ítem se está arrastrando (también es true para los demás ítems de un multi-drag), o su overlay aún está aterrizando.
ComputedRef<boolean>Este elemento es un hueco en el que aterrizará un ítem arrastrado: el del ítem activo y, en el modo de multi-drag 'group', los huecos de los ítems que viajan con él.
WritableComputedRef<boolean>Está en la selección del provider: arrastrar un ítem seleccionado los lleva todos. Asígnalo para seleccionarlo o deseleccionarlo.
ComputedRef<SortableIndicator | null>Modo indicador: el indicator de la lista mientras está unido a este ítem, null en otro caso. side indica dónde va la línea; en los árboles, depth y parentKey indican dónde aterriza el drop (side: 'inside': dentro de este ítem).
ComputedRef<number>Índice en el borrador renderizado, -1 cuando se desconoce.