扫一扫分享
dnd-kit – 一个轻量级、模块化、高性能、易使用且可扩展的 react 拖放工具包。
功能丰富: 支持定制化的碰撞检测算法、多种激活器 (activators)、可拖拽浮层 (draggable overlay)、拖拽手柄 (drag handles)、自动滚动、约束等等。
服务于 React: 对外暴露了像 useDraggable 与 useDroppable 的 hooks,不需要你重构原来的应用或者添加额外的 dom 包装节点。
支持广泛的使用场景: 比如列表、网格、多容器、多层级嵌套、可变大小的元素、虚拟列表、2D 游戏等场景。
零依赖与模块化: 核心库压缩后的大小约为 10kb,并且没有外部依赖。它仅仅使用了 React 内置的状态管理和 Context,非常的精简。
内置了对多种输入方式的支持能力: 包括指针、鼠标、触摸和键盘传感器 (sensors)。
能够完全地自定义和可扩展: 允许自定义任何细节:动画、过渡形式、行为和风格。你也可以创建自己的传感器 (sensors)、碰撞检测算法和自定义按键绑定等等。
无障碍: 支持使用键盘进行操作,提供了合理的 aria 默认属性,内置了自定义的屏幕阅读器指示和动态更新区域。
高性能: 从设计层面就考虑到了性能问题,能够提供丝滑的动画。
预置能力: 如果你需要创建一个可拖拽排序的界面?可以看看 @dnd-kit/sortable,它是建立在 @dnd-kit/core 之上的一个薄层。未来还将会提供更多的预置能力。
可扩展性是 dnd kit 的核心。dnd kit 的目标是精简和可扩展。它提供了我们认为大多数人在大多数时候所需要的功能,并提供了扩展点,以便在 @dnd-kit/core 的基础上开发其他功能。
显示 dnd kit 可扩展性能力水平的一个典型例子是 预置能力 Sortable,它就是基于 @dnd-kit/core 所暴露的扩展点而开发出来的。
主要的扩展点包括:
传感器 (Sensors)
修改器 (Modifiers)
自定义碰撞检测算法
开始使用 @dnd-kit 前,请先通过 npm 或 yarn 安装核心库:
npm install @dnd-kit/core你还需要确保已经安装了对等依赖 (peer dependencies),可能你已经在项目中安装了 react 和 react-dom,如果还没有则需要进行安装:
npm install react react-dom仅供个人学习参考/导航指引使用,具体请以第三方网站说明为准,本站不提供任何专业建议。如果地址失效或描述有误,请联系站长反馈~感谢您的理解与支持!
手机预览