React-dnd

本文详细介绍了React DnD库的使用,包括DragSource、DropTarget、DragLayer和DndProvider四个核心组件的用法。DragSource和DropTarget分别用于创建拖拽源和目标,spec定义拖放行为,collect用于获取拖放状态。DragLayer则用于自定义拖动预览,而DndProvider提供拖放功能的上下文。
摘要由CSDN通过智能技术生成

DnD 拖拽

DragSource

DragSource 是用来包装需要拖拽的组件,是一个接受三个必需参数的高阶组件。

参数

参数 说明 返回值
type 必需
spec 必需 拖拽事件的方法对象
collect 必需,接受两个参数 connect 和 monitor
options 不必需

type

拖拽组件(DragSource)与用来接受拖拽组件(DropTarget)要一致。

举例子

@DragSource("test", spec, collect)

@DropTarget("test", spec, collect)

spec

spec 是可以定义特定的对象,定义 DragSource 和 DropTarget 组件相关的事件。

举例子

@DragSource("test", {
   
   beginDrag(props) {
   
      return props.widget
    },
}, collect)

@DropTarget("test", {
   
   drop(props, monitor, component) {
   
      props.onDrop(monitor.getItem());
    },
}, collect)

DragSource 中 spec 方法

方法 说明
beginDrag(props, monitor, component) 拖动开始时触发的事件,是必需要有的方法
endDrag(props, monitor, component) 拖动结束时触发的事件
canDrag(props, monitor) 当前是否可以拖拽的事件
isDragging(props, monitor) 拖拽时触发的事件

collect

collect 是一个函数,有两个默认的参数,将会返回一个对象,这个对象会注入到组件的 props 中。

参数 connect 有两个内置的方法:dragSource() 和 dragPreview(),其中 dragSource()返回一个函数,是将 source DOM 和 React DnD backend 连接起来

举例子

render(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值