SuperAPI AI 工具集

dnd-kit-implementation

编程与开发

查看项目

更新于 10-15 19:58

技能介绍

用途:在 React 应用中用 dnd-kit 实现拖放功能,同时支持可排序容器与可放置目标。核心思路是依据拖拽上下文做条件判断:拖拽条目时容器仅作为放置目标,拖拽容器时容器作为可排序元素。

主要能力:在同一组件中同时使用 useSortable 与 useDroppable;通过 useDndContext() 检测当前拖拽对象;按拖拽状态切换 ref;用 container-* 与 item-* 前缀区分类型。

用法要点:容器组件中分别取得 setSortableRef 与 setDroppableRef,依据 active.id 前缀判断 isItem 或 isContainer,再选择对应 ref 与属性。更新容器条目时必须创建新对象,例如用 setContainers(prev => prev.map(...)) 返回新数组,直接 push 不会触发重渲染。

适用场景:看板(重排列、跨列移动卡片)、文件管理(整理文件夹、移动文件)、播放列表编辑、任务管理。

限制:资料未提供安装命令、依赖版本、完整 TypeScript 示例与浏览器兼容性说明,详见 implementation-patterns.md 与 state-management.md。