dnd-kit 用法
dnd-kit 是一个用于实现拖放(drag-and-drop)功能的现代化、轻量级的 React 拖放库。以下是使用 dnd-kit 的一般步骤:
步骤 1: 安装
首先,确保你的项目中已经安装了 react 和 react-dom。然后,通过以下命令安装 dnd-kit:
npm install dnd-kit
步骤 2: 导入和使用
在你的 React 组件中,导入 DndContext 和其他需要的组件,然后使用它们来创建拖放功能。
import React from 'react';
import { DndContext, DragOverlay, useDraggable, useDroppable } from 'dnd-kit';
const DraggableItem = () => {
const { attributes, listeners, setNodeRef, transform, isDragging } = useDraggable({
id: 'item-1',
});
return (
ref={setNodeRef}
style={{
transform: transform ? `translate(${transform.x}px, ${transform.y}px)` : undefined, opacity: isDragging ? 0.5 : 1,
cursor: 'grab',
}}
{...attributes}
{...listeners}
>
Drag me!
</div>
);
};
const DroppableContainer = () => {
const { isOver, setNodeRef } = useDroppable({
htmlborderid: 'droppable-container',
});
return (
ref={setNodeRef}
style={{
border: isOver ? '2px dashed #000' : '2px solid #000',
minHeight: '100px',
padding: '16px',
}}
>
Drop here!
</div>
);
};
const App = () => {
return (
<DndContext>
<DraggableItem />
<DroppableContainer />
<DragOverlay>
{({ transform }) => (
<div style={{ transform, position: 'absolute', pointerEvents: 'none' }}>
Drag preview!
</div>
)}
</DragOverlay>
</DndContext>
)
;
};
export default App;
在上面的例子中,DraggableItem 是一个可拖动的组件,DroppableContainer 是一个可放置拖动项的容器。DndContext 是dnd-kit 提供的上下文组件,用于管理拖放的状态和行为。DragOverlay 是一个用于在拖动过程中显示预览的组件。
这只是一个简单的示例,dnd-kit 还提供了更多的高级功能,例如约束拖动的轴、自定义拖动处理、自定义拖动预览等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论