☰
从零搭可视化拖拽平台,真的需要几周吗
2026/10/17 2:36:46 网站建设 项目流程

从零搭可视化拖拽平台,真的需要几周吗

【免费下载链接】tmagic-editor项目地址: https://gitcode.com/GitHub_Trending/tm/tmagic-editor

做低代码的同学都体会过这个痛:拖拽选中、属性表单、数据绑定,每一块单看不大,合起来就是一套长期维护的编辑器工程。TMagic Editor 想把这个壳子先做掉——它给到的是完整可视化编辑器:拖组件、配属性、绑数据源、写代码块,产出 DSL 后交给 runtime 渲染成页面。

它替你解决了什么

自己搭要覆盖的东西比想象中多:画布上的拖拽、命中检测与多选框线,DSL 的存取与撤销重做,右侧属性表单的渲染引擎,再加上数据源和代码块绑定。这几块各要数周开发,之后每一处 bug 都是你的维护成本。TMagic 把这部分按模块装好了:@tmagic/editor是编辑器壳子,页面管理、撤销重做、组件树、快捷键都在里面;@tmagic/stage管画布交互,@tmagic/form管属性面板,@tmagic/core与packages/data-source/负责运行时的渲染和数据。你剩下的工作只有一件:开发业务组件和渲染层。

谁适合用它

  • H5 活动页团队:运营自己拖组件、换文案图片,开发只维护组件库。典型例子是活动页里一个按钮的跳转链接,改配置不用发版。
  • 低代码后台:用表单和表格能力配置化管理界面。比如一个审批列表页,列、操作按钮都在编辑器里配出来。
  • 多项目复用同一套组件库的团队:把组件注册进componentGroupList,多个项目共享同一份组件来源,改一处所有项目生效。

最短上手路径

装依赖

npm install @tmagic/editor @tmagic/element-plus-adapter element-plus

官方教程推荐用 Vite 起项目,热更新更快。Webpack 4 的老项目记得在配置里加transpileDependencies: [/@tmagic/]。

挂载编辑器

import 'element-plus/dist/index.css'; import '@tmagic/editor/dist/style.css'; import TMagicEditor from '@tmagic/editor'; import TMagicElementPlusAdapter from '@tmagic/element-plus-adapter'; createApp(App) .use(ElementPlus) .use(TMagicEditor, TMagicElementPlusAdapter) .mount('#app');

入口文件里把插件注册进去,第二参数传 UI 适配层,两套样式都要引。

跑起来

模板里放一个<m-editor v-model="dslValue" :component-group-list="componentList" runtime-url="/runtime.html" />,npm run serve之后打开http://localhost:8081,看到的就是这样的编辑器首屏:

值得深挖的能力

画布与容器布局

@tmagic/stage承担选中、拖动、缩放这些基础操作,定位方式从绝对定位到弹性布局都能配。容器本身也是一个组件,可以嵌套容器,页面层级怎么复杂都由你的 DSL 决定。

数据源系统

数据源分静态、HTTP、计算三类,在侧栏统一管理,每个实例有一个 id。组件字段通过 key 关联到具体实例,谁引用了哪个数据源在树形结构里直接可见,改一处数据配置就能联动所有引用它的组件。

表单配置

每个组件声明一份formConfig,右侧属性面板由@tmagic/form自动渲染。文本、数字、颜色、下拉、日期、代码这些字段类型都内置,布局还支持分栏、对比和显隐规则,不用自己写面板渲染逻辑。

代码块

逻辑较重时,在代码编辑页给一段逻辑起名并配好参数,再挂到组件事件的指定 key 上。页面由此能挂自定义 JavaScript 而不只是配置,这是"低代码"而不是"无代码"的关键一步。

容易踩的坑

  • 画布空白:多半是 DSL 没给初始值(缺id或items字段),或者runtime-url指错了路径。先补初始值,再看浏览器控制台的报错。
  • 组件拖不进去:核对componentGroupList里的type与渲染逻辑里的 type 是否一致,再确认容器能被正确识别。type 对不上时编辑器不知道该怎么渲染这个节点。
  • 属性面板不显示:检查propsConfigs的键名是否与组件 type 匹配,字段是否符合@tmagic/form的 schema 规范,两处错一处面板就空着。

进阶方向

  • 扩展编辑器服务:通过editorService这类扩展点给编辑器加新功能,editor 核心源码 里的 services 目录是最好的参考。
  • 自定义表单字段:内置字段不够时开发新的字段类型,form 模块源码 里能看到字段是怎么注册进面板的。
  • 多人协作:WebSocket 做实时协同,DSL 落库后接 Git 做版本管理与审批流,发布链路在编辑器侧不增加额外负担。

编辑器的产出是 DSL,发布后由 runtime 加载渲染,这条解耦链路值得重点读一遍,runtime 示例 里两套框架各有一份完整实现。

TMagic Editor 把编辑器壳子做掉了,你可以把精力放回业务组件本身。

  • 快速入门指南
  • 编辑器 API 参考
  • 表单配置说明
  • editor 核心源码
  • 表单模块源码

【免费下载链接】tmagic-editor项目地址: https://gitcode.com/GitHub_Trending/tm/tmagic-editor

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询