一个可拖拽的React标签组件


最近的项目里需要实现一个标签组件,内部标签可任意拖动排序。网上搜了一圈发现几乎没有现成的基于react的组件能很好的满足需求。


较为知名的是
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
你可以使用 Material-UI 官方提供的 `Draggable` 组件来实现可标签的功能。具体实现步骤如下: 1. 首先安装 `react-draggable` 和 `@types/react-draggable` 依赖,可以使用以下命令进行安装: ``` npm install react-draggable @types/react-draggable ``` 2. 导入 `Draggable` 组件和相关类型: ```jsx import { Draggable, DraggableData, DraggableEvent } from 'react-draggable'; ``` 3. 在组件中使用 `Draggable` 组件,并设置相关参数: ```jsx <Draggable axis="both" // 设置的方向,可选值为 "x"、"y"、"both",默认为 "both" handle=".handle" // 设置的把手元素,可选值为 CSS 选择器字符串或 DOM 元素 defaultPosition={{ x: 0, y: 0 }} // 设置的初始位置 grid={[20, 20]} // 设置的网格大小,数组第一个值为 x 方向的网格大小,第二个值为 y 方向的网格大小 onStart={handleStart} // 开始时调用的回调函数 onDrag={handleDrag} // 进行中调用的回调函数 onStop={handleStop} // 结束时调用的回调函数 > <div className="handle">把手</div> <div>可的内容</div> </Draggable> ``` 其中,`onStart`、`onDrag` 和 `onStop` 回调函数分别接受两个参数:`event` 和 `data`,分别代表事件和数据。你可以在这些回调函数中实现自己的逻辑。 4. 根据需求自定义样式,例如可以使用以下样式使把手显示为一个标签: ```css .handle { cursor: move; padding: 4px 8px; background-color: #f5f5f5; border: 1px solid #ccc; border-radius: 4px; } ``` 以上就是使用 Material-UI 实现可标签组件的基本步骤,你可以根据自己的需求进行进一步的定制。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值