apps/docs/vue/components/drag-drop-provider.mdx
The DragDropProvider component is the root component for drag and drop interactions. It creates a DragDropManager instance and makes it available to all descendant components via Vue's provide/inject system.
<script setup>
import {DragDropProvider} from '@dnd-kit/vue';
</script>
<template>
<DragDropProvider @dragEnd="handleDragEnd">
<!-- Your draggable and droppable elements -->
</DragDropProvider>
</template>
The DragDropProvider emits Vue events for all drag and drop lifecycle stages:
| Event | Description |
|---|---|
@beforeDragStart | Fired before a drag operation begins. Can be used to prepare state. |
@dragStart | Fired when a drag operation starts. |
@dragMove | Fired when the dragged element moves. |
@dragOver | Fired when the dragged element moves over a droppable target. Call event.preventDefault() to prevent the default behavior of plugins that respond to this event. |
@dragEnd | Fired when a drag operation ends (dropped or canceled). |
@collision | Fired when collisions are detected between draggable and droppable elements. |
// Add a plugin alongside defaults
:plugins="(defaults) => [...defaults, MyPlugin]"
// Replace defaults entirely
:plugins="[MyPlugin]"