avatar
文章
46
标签
74
分类
12
主页
页面
  • 分类
  • 标签
  • 归档
其他
  • 环境配置
  • 人生轨迹
  • 评论管理
关于
小四先生的云React 实现常见的拖拽组件 返回首页
搜索
主页
页面
  • 分类
  • 标签
  • 归档
其他
  • 环境配置
  • 人生轨迹
  • 评论管理
关于

React 实现常见的拖拽组件

发表于2023-12-20|更新于2025-04-23|前端
|总字数:78|阅读时长:1分钟|浏览量:

代码地址

  • 可伸缩侧边栏 /src/components/resizeBox

  • 手写拖拽 Modal 组件 /src/components/dragModal

  • 使用 dnd-kit 实现拖拽组件 /src/components/dndkit

  • 使用 dnd-kit 实现嵌套可拖动菜单 /src/components/dndkitMenu

功能演示


参考文章:【鸣谢】

Dndkit

Arco Design

Ant Design

React 最佳实践:可拖拽侧边栏

文章作者: Mr.XiaoSi
文章链接: https://zxiaosi.com/archives/98c61158.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小四先生的云!
React拖拽
cover of previous post
上一篇
前端常见的文件操作
记录一下工作中用到的文件操作 文件的预览微软的在线预览功能 注意: 文件需要能够公开访问 1234567// 前缀: https://view.officeapps.live.com/op/view.aspx?src=// url: 文件地址window.open( `https://view.officeapps.live.com/op/view.aspx?src=${encodeURIComponent( url )}`); 使用微软的在线预览功能预览文件 Word https://view.officeapps.live.com/op/view.aspx?src=https://cdn.zxiaosi.com/hexo/office/temp.docx Excel https://view.officeapps.live.com/op/view.aspx?src=https://cdn.zxiaosi.com/hexo/office/temp.xlsx PPT https://view.officeapps.live.com/op/...
cover of next post
下一篇
React 使用 Tinymce 富文本
感谢 TinyMCE 中文文档中文手册 提供的文档支持。 常见功能代码地址功能演示 使用本地方式引入(跳过 API Key) 在 社区版 下载对应版本的压缩包 解压后将 tinymce 文件夹放到项目的 public 文件夹下 在 src/components/CustomEditor/index.tsx 中找到 tinymceScriptSrc,然后引入本地的 tinymce 文件 1234567<Editor ..., init={{ ..., tinymceScriptSrc={'/tinymce/tinymce.min.js'} }}/> 注意: 一定要放在 public 文件下,否则会被打包,导致找不到文件 下载语言包 在 语言包下载地址 找到需要的语言包并下载 解压后将 langs 文件夹放到项目的 public 文件夹下 在 src/components/CustomEditor/index.tsx 中找到 language,填上对应的语...
相关推荐
cover
2025-08-03
Qiankun 常见问题
Qiankun-Vite 插件 Qiankun 默认不能接入 Vite ,需要使用 vite-plugin-qiankun 插件,但是这个插件目前不支持 Qiankun的样式隔离 和 React的热更新 使用 vite-plugin-qiankun 插件,可以配合浏览器插件 React Developer Tools 实现热更新 推荐使用 vite-plugin-qiankun-lite 插件,解决了上面的问题,并且简化了配置 Node 版本问题 Node 16 使用 vite-plugin-qiankun 插件启动时会报错 ReferenceError: ReadableStream is not defined,需要更改 cheerio 的版本(注意不要带 ^ 符号),详见:cheerio upgrade problem 123"devDependencies": { "cheerio": "1.0.0-rc.12"} Node 16 使用 Vite 时,也需要更改版本(其他版本也可自...
cover
2025-07-22
React 原理浅析
前言 强烈推荐这篇文档 Build your own React !!!有动画和解释,能更好地理解 React 的原理 Github 仓库地址 也可以参考:React 核心原理浅析 参考文章:【鸣谢】 Build your own React React 核心原理浅析
cover
2023-07-06
实现 React、Vue3 的动态路由
后端说明 简单说一下常见的 RBAC (Role Based Access Control) 模型,主要是由 User、Role、Resource 三个表组成,如图所示: User 表存储用户信息,Role 表存储角色信息,Resource 表存储资源信息,User 和 Role 是多对多的关系,Role 和 Resource 是多对多的关系,通过 UserRole 和 RoleResource 两张中间表来实现多对多的关系,UserRole 表存储 User 和 Role 的关系,RoleResource 表存储 Role 和 Resource 的关系 流程 用户登录之后得到用户 Id user_id 在 user_role 表中 根据 user_id 得到对应的角色 role_id 在 role_resource 表中 根据 role_id 得到对应的资源 resource_id 列表 在 resource 表中 根据 resource_id 得到对应的 resource, 最后组合成列表就是用户拥有的资源 示例一 后端返回处理好的树形结构的数据 1234...
cover
2025-01-12
Qiankun + Vite 实现微前端
介绍 Lerna 是一个快速、领先的构建系统,用于管理和发布来自同一源码仓库的多个 JavaScript/TypeScript 软件包 Qiankun 是一个基于 single-spa 的微前端实现库,在帮助大家能更简单、无痛的构建一个生产可用微前端架构系统 Vite 是一个超快的前端构建工具,赋能下一代 Web 应用的发展 思路 主应用 app 配置四个菜单 App、 App1、App2、App3 菜单 App 链接主应用 app,可以调用子应用 app1、app2、app3 菜单 App1 链接子应用 app1,样式未隔离,组件库样式未隔离 菜单 App2 链接子应用 app2,样式未隔离,组件库样式隔离 菜单 App3 链接子应用 app3,样式隔离,组件库样式未隔离 项目地址实践包版本 node: 18.20.7 npm: 10.8.2 lerna: 8.1.8 vite: 6.1.0 qiankun: 2.10.16 node 版本小于 18 注意以下几点 所有应用 使用 Vite: 5.4.11 所有子应用 安装 vite-plug...
cover
2025-09-25
Vite 模板语法
场景 当一套代码,需要发布到两个环境( A环境 和 B环境 )中时,A环境 下需要系统管理页面,B环境 下不需要系统管理页面。这时,我们可以通过后端返回的菜单控制。 但是如果 A环境 和 B环境 的登录页面也不一样呢?这时,我们就可能需要模板语法来控制。 需要自定义一个 vite 插件,在打包前,读取环境变量,然后使用 blueimp-tmpl 的模板语法对代码进行判断并替换。 项目地址实践安装依赖 blueimp-tmpl 模板语法 1npm install blueimp-tmpl cross-env 跨环境执行命令 1npm install cross-env -D 获取环境变量 在 package.json 文件中添加 scripts 脚本 12345678"scripts": { "dev": "npm run dev:A", "dev:A": "cross-env platform=A vite", "dev:B": &q...
cover
2025-05-25
React Flow
React Flow React Flow 一个可定制的 React 组件,用于构建基于节点的编辑器和交互式图表 官网提供了大量示例,以及在线演示。建议看完每个示例,很有用!!! 其他参考:Vue Flow 代码地址在线演示 自动布局示例 参考官网示例:Dagre Tree 使用 Dagre 时注意事项 Dagre 布局算法需要指定节点的宽和高,否则会报错 @dagrejs/dagre v1.1.4 在老版浏览器 (eg: chromev89.0.4389.90) 会报 Object.hasOwn is not a function 错误,降级为 @dagrejs/dagre v1.1.3 即可解决 官网示例下面有公开的代码,此处不再贴出代码 复制粘贴示例 参考官网示例:Copy and Paste 可以仿照例子,当节点被选中时,再出现粘贴功能。核心代码如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525...

评论
avatar
Mr.XiaoSi
Records of The Little Thing of Life
文章
46
标签
74
分类
12
公告
        由于个人能力和知识范围有限,如果文章中出现了错误,还请您谅解。
目录
  1. 1. 代码地址
  2. 2. 功能演示
最新文章
微前端SDK@1.0
微前端SDK@1.02026-06-21
Vite8+Tailwindcss3 生产环境样式失效问题
Vite8+Tailwindcss3 生产环境样式失效问题2026-04-29
微前端SDK@0.5
微前端SDK@0.52025-11-30
前端监控方案
前端监控方案2025-10-23
Vite 模板语法
Vite 模板语法2025-09-25
Qiankun 常见问题
Qiankun 常见问题2025-08-03
© 2020 - 2026 By Mr.XiaoSi框架 Hexo 8.1.1|主题 Butterfly 5.5.3
豫ICP备2022013376号-1
搜索
数据加载中