调研过了几个可能比较流行的拖拽库,dnd-kit, react-beautiful-dnd, react-sortable-hoc, react-dnd 。前面三个都是封装的很好比较易用也很好看的库,但是同时存在的问题是他们要么仅支持单列列表的拖拽排序,要么可以支持多行但是仅限大小相同的网格。react-dnd 相比之下最抽象也最底层,只做了逻辑上的辅助,所有的 UI 效果要自己来。他的官方文档上有一个例子可以粗浅的实现我希望的效果,通过判断一个元素是否拖拽到另一个元素上来判断,理论上可以兼容任何布局,但是实际操作起来灵活性很差,在判定点边界的时候很容易反复判定拖拽到不同的元素上从而反复鬼畜。用起来感觉实际用户体验也远不如前面三个。
所以还有什么适合我这个需求的 React 辅助拖拽库吗?还是这个需求太奇葩了只能在 react-dnd 的基础上自己想想办法?