用 ES Drager 打造你的交互式拖拽组件 —— React 开发者必备神器

用 ES Drager 打造你的交互式拖拽组件 —— React 开发者必备神器

如果你正在寻找一个轻量、灵活、功能齐全的拖拽组件库,用于构建可拖拽、旋转、缩放、调整尺寸甚至带有连接功能的 React 应用,那么 ES Drager 会是你的不二之选。

📌 什么是 ES Drager?

ES Drager 是一个轻量级 React 组件,专为构建交互式 UI 元素而设计。它不仅支持拖拽,还提供旋转、缩放、调整尺寸、倾斜,以及节点间连线等高级功能,让你可以轻松实现:

  • 流程图编辑器
  • 可视化页面搭建器
  • 设计工具
  • 节点连接图
  • 拖拽式布局系统
  • 互动游戏/应用 UI

一句话:你想要的交互,这个库都能帮你搞定


🚀 安装与快速开始

安装方式非常简单,支持 npm、yarn、pnpm:

npm install @es-space/es-drager-react
# 或
yarn add @es-space/es-drager-react
# 或
pnpm add @es-space/es-drager-react

确保你的 React 版本 ≥ 18:

{
  "dependencies": {
    "react": "^18.0.0",
    "react-dom": "^18.0.0"
  }
}

🛠️ 快速上手

只需几行代码,就能在页面中创建一个可拖拽的元素:

import { Drager } from '@es-space/es-drager-react'

function App() {
  return (
    <Drager className="w-32 h-32 bg-blue-500">
      Drag me!
    </Drager>
  )
}

添加旋转与缩放

<Drager
  className="w-32 h-32 bg-blue-500"
  rotatable
  scalable
  minScale={0.5}
  maxScale={2}
>
  Try all features!
</Drager>

添加连接功能

<Drager
  id="node-1"
  className="w-32 h-32 bg-blue-500"
  connectable
  onConnect={(sourceId, sourceAnchor, targetId, targetAnchor) => {
    console.log('Connected:', { sourceId, sourceAnchor, targetId, targetAnchor })
  }}
>
  Node 1
</Drager>

💡 核心功能一览

1. 拖拽(Dragging)

  • 默认支持元素拖动
  • 可限制在指定范围内移动(limit 属性)
  • 提供 onDragStartonDragonDragEnd 事件

2. 旋转(Rotation)

  • 设置 rotatable 开启
  • 可通过 rotation 指定初始角度
  • 提供 onRotate(angle) 事件回调

3. 缩放(Scaling)

  • scalable 启用缩放
  • minScale / maxScale 控制缩放范围
  • 提供 onScale(scale) 事件

4. 调整尺寸(Resize)

  • resizable 启用尺寸调整
  • 支持保持纵横比或自由调整

5. 连接(Connections)

  • connectable 开启节点锚点
  • 四个默认锚点(top / right / bottom / left)
  • 自动绘制贝塞尔曲线
  • 提供 onConnect 事件

📜 主要 Props & 事件

常用 Props

Prop类型说明
rotatableboolean是否可旋转
scalableboolean是否可缩放
resizableboolean是否可调整尺寸
connectableboolean是否可连接
limitobject移动范围限制
minScalenumber最小缩放比例
maxScalenumber最大缩放比例

事件

  • onDragStart()
  • onDrag({x, y})
  • onDragEnd()
  • onRotate(angle)
  • onScale(scale)
  • onConnect(sourceId, sourceAnchor, targetId, targetAnchor)

🎯 适用场景

  • 低代码平台 — 拖拽式 UI 组件摆放
  • 流程设计器 — 节点与节点之间的逻辑连线
  • 看板工具 — 任务卡片的自由移动与调整
  • 交互游戏 — 可移动、旋转、缩放的游戏元素

📦 总结

如果你想在 React 项目中实现高自由度的交互元素,ES Drager 能帮你节省大量的开发时间,同时提供稳定流畅的体验。

👉 官方文档:https://es-space.github.io/es-drager-react/docs
👉 GitHub 仓库(可查看源码 & 提交 PR):https://github.com/es-space/es-drager-react


让你的 React 项目动起来,就从 ES Drager 开始!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MuShan-bit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值