Back to Dnd Kit

DragDropProvider

apps/docs/vue/components/drag-drop-provider.mdx

latest2.2 KB
Original Source

Overview

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.

Usage

vue
<script setup>
import {DragDropProvider} from '@dnd-kit/vue';
</script>

<template>
  <DragDropProvider @dragEnd="handleDragEnd">
    <!-- Your draggable and droppable elements -->
  </DragDropProvider>
</template>

Events

The DragDropProvider emits Vue events for all drag and drop lifecycle stages:

EventDescription
@beforeDragStartFired before a drag operation begins. Can be used to prepare state.
@dragStartFired when a drag operation starts.
@dragMoveFired when the dragged element moves.
@dragOverFired when the dragged element moves over a droppable target. Call event.preventDefault() to prevent the default behavior of plugins that respond to this event.
@dragEndFired when a drag operation ends (dropped or canceled).
@collisionFired when collisions are detected between draggable and droppable elements.

Props

<ParamField path="manager" type="DragDropManager" optional> An optional externally created `DragDropManager` instance. If not provided, one will be created automatically. </ParamField> <ParamField path="plugins" type="Plugin[] | (defaults: Plugin[]) => Plugin[]" optional> Plugins to use. Defaults to the default preset. Pass an array to replace defaults, or a function to extend them.
ts
// Add a plugin alongside defaults
:plugins="(defaults) => [...defaults, MyPlugin]"

// Replace defaults entirely
:plugins="[MyPlugin]"
</ParamField> <ParamField path="sensors" type="Sensor[] | (defaults: Sensor[]) => Sensor[]" optional> Sensors to use. Defaults to `PointerSensor` and `KeyboardSensor`. Pass an array to replace defaults, or a function to extend them. </ParamField> <ParamField path="modifiers" type="Modifier[] | (defaults: Modifier[]) => Modifier[]" optional> Modifiers to apply to drag operations. Pass an array to replace defaults, or a function to extend them. </ParamField>