avatar
文章
44
标签
73
分类
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
2023-11-29
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
2024-11-28
Qiankun + Vite 样式隔离解决方案
问题 Qiankun + Vite 作为子应用时,样式隔离无效,即使配置了 experimentalStyleIsolation: true 也无效 Ant Design 组件库样式隔离无效 解决方案 使用 Postcss-Prefix-Selector 插件为样式添加前缀 Ant Design ConfigProvider 配置 prefixCls 样式前缀 配置插件样式隔离 在子应用 vite.config.ts 中配置 postcss-prefix-selector 插件(官方示例) 1234567891011121314151617181920212223242526272829303132import prefixer from 'postcss-prefix-selector';export default defineConfig({ css: { postcss: { plugins: [ prefixer({ prefix: '[d...
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
2024-11-13
Qiankun + Vite 多个子应用共存
介绍 最初接触 umi 微前端 时,感觉这个就是两种子应用的加载方式 路由匹配方式 手动加载方式 后来在网上看到大佬的发的这个文章 探索微前端的场景极限,才发现这个实现不简单,引用了大佬的话: 在应用 A 中通过调用 loadMicroApp(B) 的方式唤起微应用 B,然后在微应用 B 中通过 loadMicroApp(C) 的方式唤起微应用 C,通过这样的调用链路即可很完美的完成产品上的诉求。 但是现实情况往往没有那么简单,前面提到过,若想要 loadMicroApp API 能符合预期的运行,我们需要确保被加载的微应用是不含自己的路由系统,否则会出现多个应用间路由系统互相 抢占/冲突 的情况。 这种场景下,我们其实只需要确保微应用的路由系统不会干扰到全局的 URL 系统即可。幸运的是 react-router 的 memory history 模式很好的解决了这一问题。 思路 主应用 app 有链接两个子应用 app1 和 app2 子应用 app1 可以通过 loadMicroApp(app1) 的方式打开子应用 app2 仓库地址项目搭建...
cover
2025-06-17
Qiankun 打包优化
文章参考下面两个 issues:提取公共依赖 doc、qiankun 如何复用公共依赖 思路 方式一:通过 CDN 引入公共依赖,并在 主子应用 中排除这些公共依赖。(如果 CDN网站 挂了,网站也就挂了,有风险) 方式二:将 CDN 资源下载到 public 文件夹下,并在 主子应用 中排除这些公共依赖 一般来说,只需要在 主应用 中引入即可,子应用 会复用主应用的资源,这个时候子应用单独访问(直接通过 http://localhost:8001/ 访问,而不是主应用路由点击)会报错,因为缺少依赖 如果需要 子应用 可以单独访问(直接通过 http://localhost:8001/ 访问,而不是主应用路由点击),那么也需要在 子应用 中引入,需要用到 ignore 关键字 项目地址创建项目初始化项目 项目目录结构 12345678910111213141516171819202122232425262728|── 项目根目录│ ├── packages # 包目录│ │ ├── app ...
cover
2025-11-30
微前端SDK
路线规划 规划图地址 项目介绍 整个 SDK 都是围绕 getRoutesApi、getUserInfoApi 这两个接口进行设计的,旨在简化微前端应用的开发 getRoutesApi 接口用于获取应用路由信息,包括主应用和微应用的路由配置。因为 Qiankun 的 entry 配置比较特殊,在本地开发时是本地服务 "entry": "http://localhost:5174",在生产环境是文件路径 "entry": "/subapp/",所以 主应用 需要使用 vite-plugin-mock 插件 mock 接口 getUserInfoApi 接口用于获取用户 user、权限 permissions、角色 role、配置信息 setting,以便进行权限控制和个性化设置。理论上来说 permissions 中应当包含 getRoutesApi 中的所有的路由路径,否则页面出走 <NotPermission /> 组件。(目前的方案是所有的组件手动包一层 <NotPer...

评论
avatar
Mr.XiaoSi
Records of The Little Thing of Life
文章
44
标签
73
分类
12
公告
        由于个人能力和知识范围有限,如果文章中出现了错误,还请您谅解。
目录
  1. 1. 代码地址
  2. 2. 功能演示
最新文章
微前端SDK
微前端SDK2025-11-30
前端监控方案
前端监控方案2025-10-23
Vite 模板语法
Vite 模板语法2025-09-25
Qiankun 常见问题
Qiankun 常见问题2025-08-03
React 原理浅析
React 原理浅析2025-07-22
Docker Compose 部署单机版 Nacos
Docker Compose 部署单机版 Nacos2025-06-23
© 2020 - 2026 By Mr.XiaoSi框架 Hexo 8.1.1|主题 Butterfly 5.5.3
豫ICP备2022013376号-1
搜索
数据加载中