一个可拖拽的React标签组件

介绍了一款基于React的高度自定义拖拽标签组件ReactDraggableTags。该组件不仅支持自由拖拽排序,还允许在标签内放置任意元素,并支持多行布局及跨区域拖拽等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

较为知名的是 react-dnd,然而它似乎只支持把一个元素移到固定的位置,我需要的是一个标签可以移动到任意位置的两个标签之间(每个标签长度不固定,所以没有固定的位置。另外还得支持多行,所以光是可多拽的列表也不行)
满足上述需求的是 react-tags,但该组件很不灵活,想要修改样式、对标签进行一些额外操作很不方便,标签内部必须是文字而不能是任意元素,且不支持“跨区域拖拽”(见下文第二张gif图)


于是我就干脆自己写了一个:

React Draggable Tags

它很好用,最短只要几行代码;又很灵活,你可以进行添加、修改、删除、排序等操作,可以在一个标签里放任何东西,可以设置任何你想要的样式(该组件本身并不包含样式)。

实际上,不仅仅是标签,很多需要类似拖拽功能的情景都可以使用它。

文档和demo地址见:https://github.com/YGYOOO/react-draggable-tags (顺便求star XD)(一开始花了一个下午写好的,所以有些bug,现在应该比较稳定了。如果有,欢迎提issue XD)

更新:现已支持手机端!

安装

npm install react-draggable-tags --save复制代码

示例:

拖动、添加、删除:


跨区域拖拽:


在一个标签里可以放任何东西,甚至。。。放一堆标签,以实现多层标签:


你几乎可以对这些标签做任何你想做的事,比如对它们进行排序:


当然列表形式也是可以的:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值