HTML5
这是由react-dnd
主要支持的Backend。它在底层使用了HTML5
的Drag
和Drop
事件。并且处理了它的一些问题。
安装
npm install react-dnd-html5-backend
copy success
额外功能
除了导出的Backend
,HTML5 Backend 还提供了一些额外的功能:
getEmptyImage()
: 它是一个返回透明空图像的函数。用于使用DragSource的dragPreview
连接器来完全隐藏浏览器绘制的拖动预览。方便绘制自定义拖动层DragLayer
。请注意,自定义拖拽预览在IE中不起作用。NativeTypes
: 三个常量NativeTypes
的枚举。NativeTypes.FILE
,NativeTypes.URL
和NativeTypes.TEXT
。您可以给放置目标指定这些类型,用于处理本地文件、url或常规页面文本的拖拽放置。
使用
<script setup lang="ts"> import { HTML5Backend } from 'react-dnd-html5-backend' import { DndProvider } from 'vue3-dnd' </script> <template> <DndProvider :backend="HTML5Backend"> <!-- your drag-and-drop application --> </DndProvider> </template>
copy success
当你在monitor
监视器上调用getItem()
时,HTML5 Backend会根据drop类型暴露事件中的各种数据:
NativeTypes.FILE
:getItem().files
, 一个数组,包含拖拽的文件getItem().items
, 使用event.dataTransfer.items
(您可以在删除目录时使用它来列出文件)
NativeTypes.URL
:getItem().url
, 一个数组,包含拖拽的 URL
NativeTypes.TEXT
:getItem().text
, 拖拽的文本