爆肝1000小时,Dooring零代码搭建平台3.5正式上线

开通VIP,畅享免费电子书等14项超值服

首页

好书

留言交流

下载APP

联系客服

2024.01.18江苏

原创徐小夕趣谈前端2024-01-1816:30发表于重庆

趣谈前端

448篇原创内容

公众号

Dooring从2020年开源第一个版本至今已经过去4年了,基于对技术和用户体验的极致追求,每一年我们都做了大量的更新迭代,期望能把用户的搭建体验做到最好,覆盖更多的使用场景.也很感谢和我一起做Dooring的小伙伴们,能让Dooring系列搭建产品在技术的潮流中不断沉淀和进化.

从用户体验到核心技术架构,我们一直在不断优化迭代,2024年Dooring会在业务场景和AI&协同能力上做进一步升级和迭代.

我画了一张图以便大家更好的了解Dooring的技术方案.

接下来我们来聊聊最新版Dooring的功能和技术实现.

目前我们常见的低代码搭建模式都是自然流布局(拖拽完全遵循文档流移动),比较符合实际开发的体验,出码比较自然,缺点就是拖拽体验比较差,搭建成本偏高,搭建自由度比较低,所以低代码产品很难避免开发的介入,对于跨界使用往往需要较高的培训使用成本.

而零代码主要面向非技术人群,可以帮助非技术用户快速搭建出专业的网页应用.目前常用的零代码搭建模式是自由布局,也就是组件可以任意移动,堆叠.它的优点是上手成本很低,搭建自由度比较高,但是如果想适应多种屏幕尺寸,开发成本就比较大了.

当然还有一种搭建模式,也是Dooring早期使用的一种模式,网格拖拽布局.我们可以使用二维网格移动来搭建页面的布局结构,优点就是元素位置可以自动适应空间,搭建成本很低,对页面适配上也有一定改善,缺点就是无法做自由度更高的元素堆叠等场景.所以网格布局更适合做设计要求没那么高的业务页面.

随着业务场景和用户使用需求的升级,Dooring在搭建上支持了双渲染搭建模式,即一套DSL可以支持网格布局和自由布局两种搭建模式,用户可以根据需求来切换搭建模式.

对于实现这两种布局方案,市面上也有比较成熟的方案,比如react-dnd,或者react-dragable,当然我们自己用vue或者react实现类似的搭建模式也完全没问题.

Schema分两部分:

editData是组件属性可编辑项的数组,每一项里面包含了如下字段:

key和name都可以按照组件属性的语义来定,这里值得一提的是type.不同属性的值类型不同,所以我们编辑项的type也不同,所有的类型如下:

更详细的代码可以参考私有化部署版的editor/src/core/FormComponents目录.

config本质上是一个对象,也就是组件所能暴露出来的属性集合,和editData数组每一项的key一致,如下:

{cpName:'Header',logoText:'',fontSize:20,color:'rgba(47,84,235,1)',height:60,fixTop:false,menuList:[{id:'1',title:'首页',link:'/'},{id:'2',title:'产品介绍',link:'/'},]}editData和config构成了一个Dooring组件的schema结构,所以我们可以发现,每一个dooring组件都具备如下结构:

当然组件的schema也可以根据自己的需求来扩展,如果在组件设计上有疑问的,可以随时和我沟通.

组件物料开发依赖于上一节说的搭建协议的设计,在开发Dooring自定义组件时我们只需要按照通用的react组件开发模式来写我们的组件即可,唯一不同的就是每一个组件都需要定义自己的schema文件,这也是低代码/零代码组件开发的通用模式.

接下来我拿Header组件来和大家介绍一下如何开发自定义的低代码组件.

importCarouselfrom'./Carousel/schema';importFormfrom'./Form/schema';importHeaderfrom'./Header/schema';importWhiteTplfrom'./WhiteTpl/schema';importIconfrom'./Icon/schema';importImagefrom'./Image/schema';importShapefrom'./Shape/schema';importLongTextfrom'./LongText/schema';importNoticefrom'./Notice/schema';importQrcodefrom'./Qrcode/schema';importTextfrom'./Text/schema';importTitlefrom'./Title/schema';constbasicSchema={Carousel,Form,Header,Icon,Image,LongText,Title,//...其他组件};exportdefaultbasicSchema;组件元信息定义组件设计好之后在编辑器中还无法看到,这是应该我们需要配置一下组件的初始化元信息,比如从组件面板拖入画布之后的组件大小,组件的名称等,具体的定义路径在:

具体定义介绍:

目前表单搭建是集成在表单组件的配置项中的,用户可以拖拽表单组件来轻松的创建表单,并可配置表单的基本校验和自定义表单提交接口.

未来我们把把表单引擎单独抽离成一个子产品,用来专门做表单搭建平台.目前已经有一个beta版本:

出码模块主要有:

原理就是通过渲染基座,通过业务流将用户搭建的页面schema注入基座工程,基座工程通过打包流将页面代码产出.

这块主要借鉴了老牌设计软件PhotoShop,我们可以便捷的在Dooring的标尺双击来生成参考线(包括x轴,y轴),我们可以把参考线拖拽到画布任意位置,来实现对元素定位的参考.

标尺设计主要是为辅助参考线,进行更精准的参考线位置和布局的规划,随着画布的缩放,参考线也会等比例缩放,保证和画布一致.

网格线的价值在于用户可以在非设计稿的情况下,精准控制元素的位置,比如对齐,排列等,我们可以通过网格布局(Dooring的设计哲学之一)的搭建模式下更快速的布局和排版页面.

在传统搭建平台里,如果没有丰富的模版支持撑,小白用户很难做出精致的页面,包括设计元素,包括色彩搭配等,所以基于这样的背景,Dooring引入了免费素材库和色彩搭配面板,方便用户做页面设计参考:

素材库里列出了我们调研之后得出的的几个常用分类:

配色方案目前提供了:

用户可以参考配色方案搭建不同色彩风格的页面.

视图控件主要是方便用户可以更快捷的调整画布和控制画布中的元素.我们都知道一旦页面中的元素变多之后,我们在查找组件或者调整页面结构的时候就会变得非常麻烦,比如页面过长,我们需要上滑动才能定位到指定位置,再比如页面元素过多,我们想快速找到某一个元素并调整,这样变得非常困难,所以Dooring基于这些痛点做了一些改进和优化.

通过Dooring提供的画布控制面板,我们可以快捷的切换画布大小,或者通过手动输入自定义尺寸的方式来改变画布大小.

为了解决上述分析的第二个问题,Dooring设计了图层管理面板.

我们可以通过图层管理面板轻松的管理画布中的组件,比如:

当然后期也会提供更强大的图层面板.

为了方便用户在画布中高效的创作,快捷键是必不可少的,所以Dooring也提供了快捷键的能力:

我们可以通过快捷键,快速的实现复制,删除,粘贴图片等功能.

目前Dooring已支持如下文件解析能力:

下图是一个文件解析的案例:

以上演示可以看到,搜索组件可以将商品组件的内容搜索出来,进而实现了组件联动.

实现方案

没错,我们用的就是CustomEvent.

事件本质上是一种通信方式,一种消息机制,我们在遇到多对象多模块场景时,使用事件进行通信是一种非常有效的方式。在多模块化开发时,可以使用自定义事件进行模块间通信。

我们使用自定义事件也很简单,就像我上面画的图一样,我们只需要具备3个条件:

接下来我们用MDN的案例来说明如何使用它:

constform=document.querySelector("form");consttextarea=document.querySelector("textarea");//创建一个新事件,允许冒泡,并提供要传递给“detail”属性的任何数据consteventAwesome=newCustomEvent("awesome",{bubbles:true,detail:{text:()=>textarea.value},});//表单(form)元素监听自定义的“awesome”事件,然后在控制台打印传递的text()方法的输出form.addEventListener("awesome",(e)=>console.log(e.detail.text()));//当用户输入时,表单中的文本区域会分派/触发事件,并以自身为事件的起点textarea.addEventListener("input",(e)=>e.target.dispatchEvent(eventAwesome));以上就实现了一下自定义事件的监听和派发,我们可以让不同的元素监听同一个事件,并进行不同的逻辑处理.

同时它的兼容性也非常好,主流浏览器都支持:

有了以上基础,我们接下来来实现一下在低代码中基于事件的组件通信模式.

上面介绍了跨组件通信,但是我们为了让业务层能更好的接入低代码或者零代码,我们需要设计统一的数据源规范.

对于数据源的设计,根据实际的业务需求,我们可以分为静态数据源和动态数据源.静态数据源是用户可以通过可视化的方式在低代码平台上创建的,比如编辑数据表格等.

动态数据源是指用户可以自定义的请求第三方的数据服务,组件消费数据源完全是动态调用的,类似于我们传统开发时使用的ajax请求.

数据源其实就是用户的一个通过可视化的方式来创建管理的数据库,我们可以静态的录入数据,也可以动态的通过接口获取数据:

然后我们在组件配置面板中就可以一键绑定数据源了:

接下来我们来实现组件通信的部分,效果如下图:

首先在搜索组件中创建事件并派发:

consthandleSearch=()=>{if(targetId){document.dispatchEvent(newCustomEvent(`search_${targetId}`,{detail:textRef.current.value}))}}为了保持事件被监听的对象可控,我们需要通过组件id来明确指定组件的监听目标,所有事件名可以用目标id+业务词来组成.

接下来我们可以在商品组件来设计统一的监听:

useEffect(()=>{consteventName=`search_${id}`;functionhandleDataChange(event:any){//将数据传递给业务函数handleSearch(event.detail);}document.addEventListener(eventName,handleDataChange)return()=>document.removeEventListener(eventName,handleDataChange)},[])这样我们就能将搜索组件的值通过event.detail方式传递给商品组件,并在搜索按钮中触发事件的执行,从而影响商品组件的业务函数的执行.

当然这只是一个简单的案例,我们还可以利用这样的机制设计更复杂的通信,比如事件队列,让一个组件依次执行一系列的事件逻辑.

Dooring为了更好的用户体验,对用户行为做了埋点统计分析:

同时还可以通过搜索来发现用户行为路径的规律,以便进行更科学的产品决策:

业务管理系统主要是为了管理平台数据资产和Saas用户的业务资产.接下来我介绍几个核心的管理模块.

给用户分配等级:

会员权益配置:

我们可以在页面管理中直观的看到页面的访问数据信息:

并且可以一键预览自己做的页面:

如果你用H5-Dooring做了一个表单页面,我们还能在页面管理中轻松看到表单的收集信息,并支持一键导出为excel:

当然如果你用H5-Dooring配置了一个活动页面(比如大转盘抽奖,九宫格抽奖活动),你也可以在这里看到活动的数据:

组件管理可以方便运营人员快速的对组件进行上架和下架,并对组件进行排序,让用户更快速的找到自己常用的组件.

同时我们还能对组件进行权限设置,让不通角色的用户拥有不同的组件操作权限.

2024年Dooring会持续优化用户体验,上线更多实用组件和模版,具体规划如下:

THE END
1.云渲染服务器怎么搭建腾讯云开发者社区云渲染服务器怎么搭建 云渲染是一种将计算机图形渲染的结果传输到云端,并在云端进行计算和处理,最后将结果返回给用户的技术。搭建云渲染服务器需要考虑以下几个方面: 1. 选择合适的云服务提供商:选择合https://cloud.tencent.com/developer/information/%E4%BA%91%E6%B8%B2%E6%9F%93%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%80%8E%E4%B9%88%E6%90%AD%E5%BB%BA-video
2.keyshot+AI产品设计渲染(第一期)草图keyshot+AI产品设计渲染(第一期),草图,产品设计,设计渲染,keyshothttps://www.163.com/dy/article/JJP9PUU80511AR28.html
3.ue4云渲染服务器怎么搭建?云渲染服务器是一种基于云计算的渲染解决方案,通过将任务分布到多个计算节点上并行处理,实现快速高效的渲染。下面就是如何搭建UE4云渲染服务器的步骤: 首先,我们需要选择一个合适的云渲染平台,例如AWS、Azure或Google Cloud。这些平台都提供了强大的计算资源和完善的云服务,适合于构建云渲染服务器。 https://www.3d66.com/ku/news/2481.html
4.渲云云渲染农场效果图和3D影视动画渲染平台渲云是一家全面拥抱公有云的云渲染农场,专业提供CG行业云端渲染解决方案, 用户遍及亚洲、欧美、中东等区域,现已支持3ds Max/Sketchup/Maya/C4D/V-Ray/Corona等主流3D软件,参与渲染制作众多知名影视动画及建筑设计作品.https://www.xrender.com/
5.京东低代码平台:浅谈水滴拖拽画布的设计与实现# 复杂页面的渲染效果 目前水滴低代码平台已经完成了页面自举的能力,平台历史开发的页面,已经使用搭建化的方式进行了替代,下图展示的是平台首页搭建的效果。 未来规划 # 1. 辅助搭建 在搭建场景使用绝对定位布局的方式,给用户的操作带来了很大的开放性,但随之而来的问题就是搭建精确度的保证。很多情况下,用户需要手动https://maimai.cn/article/detail?fid=1765292488&efid=bKAN--xcQKA-GHuVrTXBqQ
6.情感语文(精选十篇)3. 搭建平台, 内化情感 由于情感是具有瞬时性和不稳定性的, 所以在对事物评价以后, 教师要将学生获得种种情感的体验组织到一个内在和谐的系统内, 使之内化为用来指导自己行动的某种理念, 才算是完成了一次完整的情感教育。阅读教学《“精彩极了”和“糟糕透了”》一文后, 学生的情感体验已被父爱和母爱所感染。https://www.360wenmi.com/f/cnkey67kp08d.html
7.鸿蒙ArkUI实战开发基于OpenGL渲染视频画面帧鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选? 记录一场鸿蒙开发岗位面试经历~ 持续更新中…… 场景描述 在直播场景中,会有礼物、魔法等表情临时出现在画面,需要获取视频画面帧进行纹理更新后再渲染 通过OpenGL渲染视频画面帧。 ? 在ArkTS侧调用createAVPlayer()创建AVPlayer实例,初始化进入idle状态。设置业务https://zhuanlan.zhihu.com/p/12755712665
8.RenderG渲染农场3d云渲染平台renderg云渲染农场,渲染客户端,效果图渲染,免费渲染,渲染集群,3dmax,max渲染,maya渲染,houdini渲染,在线渲染,c4d渲染,是国内领先的云渲染平台https://www.renderg.com/
9.融媒体中心建设与发展对策研究帮我搜(三)对新技术平台搭建并不完美 科技的发展改变了传统的获取信息的方式。但全省融媒体在新技术的运用上还不够成熟,没有考虑到新技术,新技术的使用和接受度也远不及商业媒体,造成全省融媒体平台建设不完善,内容质量高,产能低,缺乏吸引力。此外,平台建设不成熟,平台研发功能不完善,造成用户缺乏、用户体验不佳的现象。https://bjbws.com/case_detail/748/MTczODc=.html
10.tmagic表单渲染 魔方的表单配置项,使用了我们开发的基于 element-ui 的 @tmagic/form,@tmagic/form 也可以在其他地方单独使用。支持渲染 JS Schema 提供的表单描述。 使用 playground 的示例项目,就是为开发者提供的基础应用示例。开发者可以基于此或者参考自行实现,搭建一个基于魔方的可视化搭建平台。 https://gitee.com/webapp_qsr/tmagic-editor
11.猫眼娱乐与腾讯云战略合作升级,携手打造高效渲染平台助力业务增长9月5-6日,2024腾讯全球数字生态大会在深圳宝安国际会展中心举办。会上,猫眼娱乐与腾讯云宣布达成战略合作。未来,双方将在深度长期合作的基础上,基于腾讯云在数字化、AIGC、全球基础设施等方面的技术优势,共同探索猫眼娱乐渲染平台的搭建和模型调优,助力客户快速且灵活地完成动画渲染任务。 https://news.hexun.com/2024-09-09/214437772.html
12.GitHubJatteny/tmagic表单渲染 魔方的表单配置项,使用了我们开发的基于 element-ui 的 @tmagic/form,@tmagic/form 也可以在其他地方单独使用。支持渲染 JS Schema 提供的表单描述。 使用 playground 的示例项目,就是为开发者提供的基础应用示例。开发者可以基于此或者参考自行实现,搭建一个基于魔方的可视化搭建平台。 https://github.com/Jatteny/tmagic-editor
13.英特尔酷睿i512600K处理器怎么样?英特尔酷睿i5平台搭建 12代酷睿处理器的推出对于消费者来说有了更多的选择,而为了满足12代酷睿处理器所需的供电,各大主板厂商也增加了主板的规格。除了CPU之外,我们在其他硬件上选择的仍然与Intel Core i9-12900K测评相同,包括拥有20+1相供电的ROG MAXIMUS Z690 Hero主板,搭载双8Pin接口,保证了处理器在全速运行时候的稳定。 https://www.jb51.net/hardware/cpu/796545_all.html
14.如何搭建云渲染服务器教程图?Worktile社区搭建云渲染服务器需要具备一定的技术知识和经验,如果您不熟悉相关技术,建议寻求专业的技术支持或咨询。同时,根据您的实际需求和预算,适当调整以上步骤以满足您的要求。希望这个教程图能够帮助您顺利搭建一个高效的云渲染服务器。 1.选择云平台和服务器配置 https://worktile.com/kb/ask/1248002.html
15.如何搭建一个高可用的服务端渲染工程?陌路y单个流量降级 – 偶发的服务端渲染失败降级为客户端渲染 Disconf / Apollo 配置降级 – 分布式配置平台修改配置主动降级,比如可预见性的大流量情况下(双十一),可提前通过配置平台将整个应用集群都降级为客户端渲染 CPU 阈值降级 – 物理机 / Docker 实例 CPU 资源占用达到阈值触发降级,避免负载均衡服务器在某些情况下https://www.cnblogs.com/moluy/p/14024759.html
16.Intel酷睿P9500处理器性能天梯图评测常见问题一、测试平台搭建 为了全面评测Intel酷睿P9500处理器的性能表现,我们选择了联想小新Pro 14 2022作为测试平台。该笔记本搭载了14英寸2.8K 120Hz高刷屏幕,16GB双通道内存,512GB PCIe 4.0固态硬盘等高端配置,可以充分发挥Intel酷睿P9500处理器的性能优势。测试过程中,我们将笔记本接入稳定的电源,并关闭了所有后台程序,以保https://www.xiaoyuxitong.com/cjwt/156322.html
17.线下实景观展,线上云端逛展“图洽会云平台”搭建进行时记者从图洽会组委会了解到,作为本届图洽会最具亮点的内容之一—图洽会“云平台”已经完成前期模块设计,功能搭建正在进行中。图洽会云平台将依托大数据、人工智能、移动互联网、云计算、区块链等一系列数字化技术,充分利用5G、3D、VR等技术,打破地域、时间、空间、距离和成本等限制,通过在线上搭建一个VR虚拟网络展览https://m.yb983.com/tuiguang/p/267549.html
18.3D展览搭建模拟实训系统平台基于3D模拟技术,拥有大量的仿真构件素材,为体现搭建设计的丰富效果,平台可上传二维平面图功能,如个性化订制展会宣传标识、标语、广告语、招贴等等。通过平台可创建多门类多种效果的,从而达到平台的综合利用。 4、作品渲染导出 凡是在平台自主创建或设计的作品,经过系统的渲染输出,可自行保存到电脑或存储到个人的平台http://hzzyk.hncpu.com/info/1039/1901.htm