首页
学习
活动
专区
圈层
工具
发布

【前端拖拽组件库】最强开源高性能组件库Pragmatic-drag-and-drop简介与分析

react-drop-indicator:渲染放下时的指标 flourish:使拖动操作更绚丽多彩的效果(例如,drop 时闪光) auto-scroll:拖动操作期间更绚的自动滚动效果 react-accessibility...到 Pragmatic 拖放的快速迁移 三、性能/功能比较 下面我们将分别从性能,功能特性,社区,安装包大小,代码块大小,技术架构等卫队对react-beatiful-dnd,react-dnd,@dnd-kit...比react-beatiful-dnd快了进180ms,比react-dnd是快了166ms,用时1ms;在服务端渲染时,Pragmatic-drag-and-drop比react-beatiful-dnd...四、实操教程 下面我们将根据官网的一个实例,学习使用 Pragmatic-drag-and-drop实现一些基本功能,包括可拖放、拖放目标和监视器,我们将创建一个带有可拖动棋子的棋盘,效果图如下: 1....构建可拖动棋子 我们第一步是允许棋子被拖动,Pragmatic-drag-and-drop提供了一个可拖动的函数draggable,可以将其附加到元素以启用可拖动行为,为了使作品在拖动时淡入淡出,我们可以在可拖动的设置状态中使用

6.3K22

使用React DnD实现列表拖拽排序

主要实现以下功能: 鼠标hover到【列表项】,显示可【拖动图标】; 抓取【拖动图标】并拖动,【列表项】跟随鼠标; 拖动过程【其他列表项】自行挪动; 拖动到目标位置,释放鼠标,完成排序; 由于项目使用...React DnD 是一组 React 高阶组件,使用的时候只需要将对应的 API 将目标组件进行包裹,即可实现拖动或接受拖动元素的功能。...可以在 codesandbox 查看 React DnD 例子的源码,包含ES6、ES7的实现。...安装 React DnD # Using npm npm i -s react-dnd react-dnd-html5-backend # Using yarn yarn add react-dnd...React DnD 核心 API DragSource:用于包装需要拖动的组件,使组件能够被拖拽(make it draggable)。

10.4K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    前端里的拖拖拽拽了解一下?

    最近在项目中使用了 react-dnd[1],一个基于 HTML5 的拖拽库,“拖拽能力”丰富了前端的交互方式,基于拖拽能力,会扩展各种各样的拖拽反馈效果,因此有必要学习了解,最好的学习方式就是实操!...dragleaveondragleave当拖动元素离开一个可释放目标元素放置dragoverondragover当元素被拖到一个可释放目标元素上时(100 ms/次)放置dropondrop当拖动元素在可释放目标元素上释放时放置...1.3 DataTransfer 在上述的事件类型中,不难发现,放置元素和拖动元素分别绑定了自己的事件,可如何将拖拽元素和放置元素建立联系以及传递数据?...三、已有拖拽库 目前主流的拖拽库有: react-dnd: https://github.com/react-dnd/react-dnd/ react-beautiful-dnd: https://github.com...,从可扩展和兼容性上考虑,最终选择了 react-dnd 作为基础拖拽库,当然,在复杂的拖拽场景下,是需要自行扩展该拖拽库,上手难度相对会高一点,不过有了这些“拖拽知识”作为前置基础,那么扩展功能也就不是什么难事了

    6.1K30

    React drag 排序折腾小记

    需求,一个列表,期望可以支持拖动排序。...折腾过程 react-beautiful-dnd 首页相遇的是 atlassian/react-beautiful-dnd,但是这个库已经进入维护状态,基本不更新了,在 React 18 严格默认下使用...:dnd kit – a modern drag and drop toolkit for React 这个库可以支持换行下的拖动排序,基本用法: React Drag And Drop List With...的长度是不一样的,则拖动时,会进行缩放,看起来有点点奇怪 大问题是,如果 Item 中有需要进行交互的内容,则会失效, How do I prevent draggable on input and...template - CodeSandbox 解决了不同长度的 Item 在拖动时的预览缩放问题, 通过使用控制点的方式(仅在部分 UI 上响应拖动操作),解决了 Item 内部不可交互的问题。

    33310

    前端10大开源拖拽排序库汇总, 让搭建,更简单

    」 是一组 「React」 高阶组件,使用的时候只需要使用对应的 「API」 将目标组件进行包裹,即可实现拖动或接受拖动元素的功能。...Sortable 「Sortable」 —是一个「JavaScript」库,用于在现代浏览器和触摸设备上对拖放列表进行重新排序。无需「jQuery」。...「react-beautiful-dnd」 是为垂直和水平列表专门构建的更高级别的抽象. 在该功能的子集内「react-beautiful-dnd」提供强大,自然和美丽的拖放体验....8. dnd kit 「dndkit」 可以让我们轻松构建拖放界面, 而无需在每次项目需要移动位置时都更新「dom」....Formily 在 React 中,在受控模式下,表单的整树渲染问题非常明显。

    7.1K21

    整理了12款开源拖拽库, 轻松上手可视化搭建

    」 是一组 「React」 高阶组件,使用的时候只需要使用对应的 「API」 将目标组件进行包裹,即可实现拖动或接受拖动元素的功能。...Sortable 「Sortable」 —是一个「JavaScript」库,用于在现代浏览器和触摸设备上对拖放列表进行重新排序。无需「jQuery」。...「react-beautiful-dnd」 是为垂直和水平列表专门构建的更高级别的抽象. 在该功能的子集内「react-beautiful-dnd」提供强大,自然和美丽的拖放体验....8. dnd kit 「dndkit」 可以让我们轻松构建拖放界面, 而无需在每次项目需要移动位置时都更新「dom」....Formily 在 React 中,在受控模式下,表单的整树渲染问题非常明显。

    4.5K20

    有趣的拖放案例

    引言拖放可能看起来像一个简单的用户交互,其中你拾取一个项目并将其放置在其他地方,类似于在Trello板或任何看板样式界面上组织项目,其中卡片或信息可以轻松通过点击和拖动进行重新排列。...问题**在epilot,我们在应用程序的不同部分广泛使用了react-beautiful-dnd。然而,在尝试一些复杂的场景时,我们在某些情境中遇到了一些障碍,它无法准确预测元素的放置位置。...它符合我们解决更复杂的嵌套拖放场景以及在不同级别拖动的能力的目标。dnd-kit的一些关键优势非常有用,包括:自定义占位符 - 这是最受欢迎的用例之一。...在react-beautiful-dnd中实现这一点可能会很具有挑战性,因为它将具有有限的功能并且需要大量的JavaScript来达到令人满意的状态。...在我们的场景中,我们希望在拖动期间显示元素及其子元素的精简版本,因此我们使用了带有React portal的DragOverlay。

    1K00

    JavaScript进阶之实现拖拽

    最近做到的react项目就有一个拖拽的需求,然后大概搜索了一下,找到了star比较高的react-dnd库,但是阅读react-dnd的官方文档还是有点难受的,因为概念性比较强,所以在介绍react-dnd...事件在指针设备按钮按下时触发。...mouseup事件在指针设备按钮抬起时触发。 当指针设备( 通常指鼠标 )在元素上移动时, mousemove 事件被触发。 JavaScript三大家族 ? ? 明白了上述?...,此事件作用在目标元素上 ondragover 事件:拖拽元素在目标元素上移动的时候触发的事件,此事件作用在目标元素上 ondrop 事件:被拖拽的元素在目标元素上同时鼠标放开触发的事件,此事件作用在目标元素上...的概念有注意理解react-dnd库的api 举个例子?: <!

    3.2K40

    使用 React-DnD 打造简易低代码平台

    React-dnd React DnD 是 React 和 Redux 核心作者 Dan Abramov 创造的一组 React 工具库,可以帮助您构建复杂的拖放接口,同时保持组件的解耦性。...官方 demo 一起来看下简单实现 首先需要在项目根节点设置拖拽实现方式 import { render } from 'react-dom' import Example from '....,因为 react-dnd-html5-backend不支持触摸 DragBox 的实现 import { useDrag } from 'react-dnd'; import { ItemTypes...end 是拖放结束后的回调 collect 用于获得拖动的状态,可以设置样式 DropContainer 实现 import { useDrop } from 'react-dnd'; import...嵌套拖动 基本组件一般可以嵌套的,比如我现在想要拖动出下图的页面效果 实际上我需要生成 JSON 树,然后根据 JSON 树渲染出页面。

    7.3K20

    【JS】1724- 重学 JavaScript API - Drag and Drop API

    这里介绍几个常见的使用场景: 相册应用中,用户可以拖动图片到不同的分组或标签中进行分类; 项目任务管理应用中,用户可以拖动任务卡片进行排序或分组; 文件上传功能中,用户可以将文件拖动到指定区域进行上传;...当拖动图片时,我们使用 dragstart 事件将图片的 ID 存储在 dataTransfer 对象中。...通过这样的实现,用户可以轻松地将图片拖动到不同的相册中进行分类和管理。 3.2 项目任务管理应用 在项目任务管理应用中,用户可以通过拖动任务卡片进行排序、分组或更改任务状态。...注意性能问题,特别是在处理大量拖放元素时。 考虑移动设备上的触摸操作,确保拖放功能在移动设备上的可用性和易用性。 提供适当的视觉反馈和指导,以帮助用户理解和使用拖放功能。...DnD: https://github.com/react-dnd/react-dnd [10] Vue.Draggable: https://github.com/SortableJS/Vue.Draggable

    1.8K20

    有点意思的gif动图生成平台开发实战(二)

    精彩回顾 如何实现H5可视化编辑器的实时预览和真机扫码预览功能 在线IDE开发入门之从零实现一个在线代码编辑器 基于React+Koa实现一个h5页面可视化编辑器-Dooring TS核心知识点总结及项目实战案例分析...接下来我们看看主要要实现的功能点: 纯前端实现图片上传和预览 基于react-beautiful-dnd实现元素自由拖动排序 使用javascript实现生成uuid的函数 使用file-saver实现前端下载文件...其中File对象可以是来自用户在一个input元素上选择文件后返回的FileList对象,也可以来自拖放操作生成的DataTransfer对象,还可以是来自在一个HTMLCanvasElement上执行...使用react-beautiful-dnd实现元素自由拖动排序 大家在研究过H5-Dooring | 一款强大的开源H5编辑器 后就会发现react-dnd这个模块很熟悉, 因为该开源编辑器就使用了react-dnd...笔者在社区又发现了一个比较有意思的拖拽库react-beautiful-dnd, 同样可以实现优雅平滑的智能拖拽效果, 基本案例如下: 在深入研究该库之后笔者发现可以直接用来实现图片组件的拖拽并排序的功能

    1.4K10

    从零搭建一款PC页面编辑器PC-Dooring

    PC端的编辑器PC-Dooring, 虽然在设计上还有些不足(在后面的内容中会提到) , 但是基本模型已经实现, 接下来就和大家一起分享一下具体的实现....编辑器核心的一环就是组件拖拽, 这里笔者使用了社区比较强大且稳定的库react-dnd, 其拖拽分为两个部分, 一个是从组件区拖拽到画布区, 另一个是画布区内部组件的自由拖拽....我们可以用原生H5的拖放API来实现第一部分的功能, 本质是将拖动源携带的数据传到画布制定区域, 目标源监听事件拿到携带的数据动态渲染出实际的组件. 过程如下: ?...image.png 当然深入研究过react-dnd的朋友都知道, 以上两个功能通过react-dnd都可以实现, 大家可以参考它的官网react-dnd官网学习研究具体实现流程, 也可以直接参考PC-Dooring...目前PC-Dooring已经在github上以MIT协议完全开源, 如果大家感兴趣,也可以贡献你的一份力量, 帮助社区解决更多问题.

    2.2K40

    「React进阶」 推荐 8 个很棒的 React 工具库,强烈建议收藏~

    笔者在开发 React 项目的时候,总结出一些很不错的 React 库,可以提高开发效率,满足业务需求,接下来将一一介绍它们。...而且在 github 上已经取得 74.6k+ 的 star 1.jpg 参考官网:https://ant.design/index-cn 项目地址:https://github.com/ant-design...9.jpg 拖拽库 React dnd React dnd 是 React 的一个推拽库,用起来还是比较得心应手的。react-dnd 在 github 上得到了 16.4k+ 的 star。...10.jpg 参考官网:https://react-dnd.github.io/react-dnd/docs/overview 项目地址:https://github.com/react-dnd/react-dnd...这个插件是笔者开发的,主要是用于一些 React 中需要缓存页面的需求,这里推广一下,目前在 github 上获得 519颗 。

    1.7K20

    推荐 8 个很棒的 React 工具库,强烈建议收藏~

    笔者在开发 React 项目的时候,总结出一些很不错的 React 库,可以提高开发效率,满足业务需求,接下来将一一介绍它们。...而且在 github 上已经取得 74.6k+ 的 star 1.jpg 参考官网:https://ant.design/index-cn 项目地址:https://github.com/ant-design...9.jpg 拖拽库 React dnd React dnd 是 React 的一个推拽库,用起来还是比较得心应手的。react-dnd 在 github 上得到了 16.4k+ 的 star。...10.jpg 参考官网:https://react-dnd.github.io/react-dnd/docs/overview 项目地址:https://github.com/react-dnd/react-dnd...这个插件是笔者开发的,主要是用于一些 React 中需要缓存页面的需求,这里推广一下,目前在 github 上获得 519颗 。

    1.4K10

    Hooks + TS 搭建一个任务管理系统(八)-- 拖拽功能实现

    一、给看板添加拖拽功能 这一篇文章就只讲一个部分,正如标题所说,添加一个拖拽功能 实现效果像这样 我们实现这个功能采用了一个 react-beautiful-dnd 的库,关于这个库可以查看 : npm...在 HTML5 中新增的 Drop 和 Drag 当我们需要设置某个元素可拖放时,只需要 draggable 设置为 true 当拖放执行时,会发生 ondragstart...drag object 中的数据类型 在何处放置被拖动的数据 默认地,无法将数据/元素放置到其他元素中。...该方法将返回在 setData() 方法中设置为相同类型的任何数据。...被拖数据是被拖元素的 id ("drag1") 把被拖元素追加到放置元素(目标元素)中 (参考于菜鸟教程) 可以亲自试一试:在线演示 总结 大概了解了一下如何使用 react-beautiful-dnd

    87630
    领券