张铁柱-前端实现《低代码可视化编辑器》(一)思路整理 React-dnd+Ts

先上效果:

拖拽生成页面+调整顺序
最近,接到任务做一个低代码编辑器,于是着手整理一下思路,调研一下实现方式。

整理思路:

一、实现框架与语言选择:

秉承着用新不用旧+与国际化接轨的思路,考虑到可用三方框架的数量与质量,于是我选择了React+Ts的实现方式。

二、编辑器实现思路:

1、自下而上的构建思路:

实现拖拽 -> 实现组件位置编排 -> 实现组件属性调整 -> 实现画布与功能面板

2、自上而下的构建思路:

实现画布与功能面板 -> JSON 解析成组件 -> 放置到画布相对位置 -> 实现组件拖拽 -> 实现组件属性调整

三、着手实现:

由于编者首次实现可视化编辑器,不清楚相关的三方组件库的支持情况,选择自下而上的实现方式,先去实现单个组件的拖拽功能,再去实现画布与功能区,以确保核心功能不出现问题。

1、选择拖拽库:

调研:编者分别调研了:react-konva、react-dnd、react-beautiful-dnd、craft.js

react-konva:是一个很棒的画布库,画布中的组件可以实现 平移、旋转、缩放,但是不支持三方组件的 加入,如果想实现一些功能复杂的组件,后期只能自己实现,并不能使用现成的Antd等组件库。

react-dnd:是很专业的组件拖拽库,很多三方库都是用该组件库来实现拖拽,经过调研,初步认定可实现可视化编辑器的需求,但是该库定位偏功能底层,并不能快速实现功能的堆叠。

react-beautiful-dnd:一个有拖拽功能的组件库,并且在此基础上实现了拖拽排序动画,不同组件列表之间的位置调换。

craft.js:一个成熟的可视化编辑器库,拖拽、缩放、组件属性调整等功能非常完整。

结论
最终编者选择了react-dnd做为实现可视化编辑器的基础库,原因如下:

react-konva:让我不能接入三方组件库,导致后期的每个组件实现的时间成本大大增加,所以pass。

craft.js:虽然功能完整,但是接入时发现很多涉及到的库并不支持最新版本的react18,秉着向前发展的原则,pass。

react-beautiful-dnd:虽然在拖拽的基础上实现了更多的功能,但也带来了桎梏,导致后期拓展方面的不便,所以pass。

react-dnd:虽然功能偏基础,但是胜在功能稳定、扩展性强,但是弊端可能就是很多功能要自己实现,导致实现周期变长。但是,面对功能稳定、拓展性强的两个优点,我妥协了,并且,react-dnd支持最新版的react18,时代的车轮总是要向前滚的,不能抱着以前东西敝帚自珍,跟随时代与创造时代,是两种不同的乐趣。

下一篇讲解《前端实现低代码可视化编辑器(二)拖拽组件》

张铁柱-前端实现《低代码可视化编辑器》(一)思路整理 React-dnd+Ts相关推荐

  1. 低代码可视化报表开源工具,只要在线拖拽就能做出复杂数据报表

    平时苦于做报表的小伙伴们,今天TJ君给你们带来一个开源低代码可视化报表项目,JimuReport,来解决你们的报表难题! JimuReport,作为一个报表项目,它拥有类似excel的操作风格,简简单 ...

  2. DIY官网可视化工具打造低代码可视化一键生成导出源码工具

    DIY官网可视化工具 打造低代码可视化一键生成导出源码工具 设计一次打通设计师+产品经理+技术开发团队必备低代码可视化工具 从想法到原型到源码,一步到位低代码生成源码工具 立即定制DIY官网可视化工具 ...

  3. 低代码可视化报表-积木报表,JimuReport v1.5.2版本发布

    项目介绍 一款免费的低代码可视化报表,像搭建积木一样在线拖拽设计!低代码开发必备,功能涵盖,数据报表.打印设计.图表报表.大屏设计等! 秉承"简单.易用.专业"的产品理念,极大的降 ...

  4. 低代码可视化平台为智慧矿山系统开发提速

    什么是智慧矿山? 智慧矿山,是指基于现代煤矿智能化理念,将物联网.云计算.大数据.人工智能.自动控制.工业互联网.机器人化装备等与现代矿山开发技术深度融合,形成矿山全面感知.实时互联.分析决策.自主学 ...

  5. 【3数据可视化】基于vue的动态数据低代码可视化实现

    目录 1.数据科学的产业升级 2.数据可视化的痛点 2.1 数据分析师 2.2 想提升的非技术人员 3.数据可视如何简单化 3.1 数据部分 3.1.1 代码需求 3.1.2 无代码需求 3.2 图表 ...

  6. 低代码可视化开发理念在物联网APP开发中的应用

    目录 引言 1 相关背景技术 1.1 低代码开发平台发展趋势 1.2 低代码开发平台的研究 2 云编排式APP开发平台 2.1 传统Native Code物联APP开发方式面临的问题 2.2 云编排式 ...

  7. 一个思想超前的低代码平台主要实现思路

    1. 背景 当前公司一个几年前使用传统开发模式(tomcat+mysql+Jersey+mybatis)研发的一个应用服务在ToB市场卖了好几年.ToB市场最恼火的是各种定制化开发,这也是大量以项目制 ...

  8. 阿里飞冰使用教程-前端低代码可视化GUI速开发

    飞冰可以帮你干什么? 以往建立前端工程,需要许多繁琐的步骤,现在使用飞冰,他可以直接帮你搭出一个架子,你在这个架子的基础上再开发就行,并且使用飞冰,你的前端页面完全可以通过GUI可视化自己拼接而成,类 ...

  9. 前端低代码标准化元年,那些你需要了解的

    近些年低代码方向十分火爆,低代码工具百花齐放,经过多年的摸索和沉淀,前端低代码主流思路已经趋于稳定.本文将从低代码爆发的背景说起,为大家介绍目前低代码的发展情况以及前端低代码技术体系.(本文中的低代码 ...

最新文章

  1. mysql font zhushi_关于在mysql front中使用注释符报错的问题
  2. (002)每日SQL学习:删除名称重复的数据
  3. Intel Optane(tm) Memory Pinning 无法加载DLL“iaStorAfsServiceApi.dll“:找不到指定模块。(异常来自HRESULT:0x8007007E)
  4. todo在此放置对话框控件_MFC界面开发进入BCGControlBar v30.5时代,Gantt Chart控件升级...
  5. java communal_平台用英语怎么说
  6. ssis 计划任务_SSIS Hadoop连接管理器和相关任务
  7. 直流稳压电源的设计与制作
  8. 配置nginx+wordpress的https
  9. 让你博客的代码显示得更酷
  10. html文字闪光效果,css实现字体闪烁效果
  11. 统信操作系统UOS上手操作与初体验、功能测试
  12. Intellij IDEA 2018 安装和破解
  13. 《期权、期货及其他衍生产品》读书笔记(第二章:期货市场与中央交易对手)
  14. Arduino-ESP8266 控制舵机开门
  15. 《毒液2》上线,豆瓣评分6.1-附繁体中字预告片
  16. Kubernetes初探
  17. 本地phpstudy设置访问浏览器打不开localhost解决方法
  18. 企业管理软件如何选型?看完后恍然大悟
  19. winmail中web界面破除用户限制
  20. Shell---函数

热门文章

  1. php识别word语言,PHP读取word文档
  2. 登录成功后怎么跳转页面html,怎么设置登录成功后跳转到相应的页面
  3. ecs共享型s6怎么样?
  4. 机械键盘按键失灵解决办法(亲测有效,不用换不用拆,5分钟搞定)
  5. Qiyuan-python接小球游戏
  6. 春生冬至时——今日冬至
  7. js获取最大整数的方法
  8. 汉字转拼音的c++实现
  9. 【历史上的今天】12 月 27 日:第一台计算机背后的女性们;Box 创始人出生;开普勒诞生
  10. 几本关于用户体验的书籍