张铁柱-前端实现《低代码可视化编辑器》(一)思路整理 React-dnd+Ts
张铁柱-前端实现《低代码可视化编辑器》(一)思路整理 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相关推荐
- 低代码可视化报表开源工具,只要在线拖拽就能做出复杂数据报表
平时苦于做报表的小伙伴们,今天TJ君给你们带来一个开源低代码可视化报表项目,JimuReport,来解决你们的报表难题! JimuReport,作为一个报表项目,它拥有类似excel的操作风格,简简单 ...
- DIY官网可视化工具打造低代码可视化一键生成导出源码工具
DIY官网可视化工具 打造低代码可视化一键生成导出源码工具 设计一次打通设计师+产品经理+技术开发团队必备低代码可视化工具 从想法到原型到源码,一步到位低代码生成源码工具 立即定制DIY官网可视化工具 ...
- 低代码可视化报表-积木报表,JimuReport v1.5.2版本发布
项目介绍 一款免费的低代码可视化报表,像搭建积木一样在线拖拽设计!低代码开发必备,功能涵盖,数据报表.打印设计.图表报表.大屏设计等! 秉承"简单.易用.专业"的产品理念,极大的降 ...
- 低代码可视化平台为智慧矿山系统开发提速
什么是智慧矿山? 智慧矿山,是指基于现代煤矿智能化理念,将物联网.云计算.大数据.人工智能.自动控制.工业互联网.机器人化装备等与现代矿山开发技术深度融合,形成矿山全面感知.实时互联.分析决策.自主学 ...
- 【3数据可视化】基于vue的动态数据低代码可视化实现
目录 1.数据科学的产业升级 2.数据可视化的痛点 2.1 数据分析师 2.2 想提升的非技术人员 3.数据可视如何简单化 3.1 数据部分 3.1.1 代码需求 3.1.2 无代码需求 3.2 图表 ...
- 低代码可视化开发理念在物联网APP开发中的应用
目录 引言 1 相关背景技术 1.1 低代码开发平台发展趋势 1.2 低代码开发平台的研究 2 云编排式APP开发平台 2.1 传统Native Code物联APP开发方式面临的问题 2.2 云编排式 ...
- 一个思想超前的低代码平台主要实现思路
1. 背景 当前公司一个几年前使用传统开发模式(tomcat+mysql+Jersey+mybatis)研发的一个应用服务在ToB市场卖了好几年.ToB市场最恼火的是各种定制化开发,这也是大量以项目制 ...
- 阿里飞冰使用教程-前端低代码可视化GUI速开发
飞冰可以帮你干什么? 以往建立前端工程,需要许多繁琐的步骤,现在使用飞冰,他可以直接帮你搭出一个架子,你在这个架子的基础上再开发就行,并且使用飞冰,你的前端页面完全可以通过GUI可视化自己拼接而成,类 ...
- 前端低代码标准化元年,那些你需要了解的
近些年低代码方向十分火爆,低代码工具百花齐放,经过多年的摸索和沉淀,前端低代码主流思路已经趋于稳定.本文将从低代码爆发的背景说起,为大家介绍目前低代码的发展情况以及前端低代码技术体系.(本文中的低代码 ...
最新文章
- mysql font zhushi_关于在mysql front中使用注释符报错的问题
- (002)每日SQL学习:删除名称重复的数据
- Intel Optane(tm) Memory Pinning 无法加载DLL“iaStorAfsServiceApi.dll“:找不到指定模块。(异常来自HRESULT:0x8007007E)
- todo在此放置对话框控件_MFC界面开发进入BCGControlBar v30.5时代,Gantt Chart控件升级...
- java communal_平台用英语怎么说
- ssis 计划任务_SSIS Hadoop连接管理器和相关任务
- 直流稳压电源的设计与制作
- 配置nginx+wordpress的https
- 让你博客的代码显示得更酷
- html文字闪光效果,css实现字体闪烁效果
- 统信操作系统UOS上手操作与初体验、功能测试
- Intellij IDEA 2018 安装和破解
- 《期权、期货及其他衍生产品》读书笔记(第二章:期货市场与中央交易对手)
- Arduino-ESP8266 控制舵机开门
- 《毒液2》上线,豆瓣评分6.1-附繁体中字预告片
- Kubernetes初探
- 本地phpstudy设置访问浏览器打不开localhost解决方法
- 企业管理软件如何选型?看完后恍然大悟
- winmail中web界面破除用户限制
- Shell---函数