tmagic-editor,腾讯开源的基于 Vue3 的页面可视化编辑器
hi, 大家好, 我是徐小夕.
之前一直在社区分享零代码&低代码的技术实践,也陆陆续续设计并开发了多款可视化搭建产品,比如:
H5-Dooring(页面可视化搭建平台)
V6.Dooring(可视化大屏搭建平台)
Flowmix/Docx 多模态文档编辑器: 让文档不止于文档
最近也一直在研究可视化搭建 + AI相关的技术实践, 为了让大家更好的学习和上手可视化零代码平台的开发,今天就和大家分享一款开源的可视化页面编辑器——tmagic-editor。

github地址:https://github.com/Tencent/tmagic-editor
一、tmagic-editor 是什么?

tmagic-editor 是一款基于 Vue3 的 Web 页面可视化编辑器工具,它的出现为前端开发带来了全新的思路和方法。以往,开发者在构建页面时,往往需要花费大量时间在繁琐的代码编写和页面布局调整上,而 tmagic-editor 通过提供友好的拖拽编辑方式,让这一过程变得轻松简单。

上面是它的原理流程图,无论是经验丰富的资深开发者,还是刚入门的新手,都能通过这套模式轻松上手开发可视化编辑器。

它和我之前研发的零代码平台 H5-Dooring 有点类似,都是通过可视化拖拽和配置式来生成页面,接下来我就和大家详细介绍一下这款开源项目,并提供一个代码案例,帮助大家更快的上手和掌握它。
二、核心特性解析
2.1 友好的拖拽编辑方式

tmagic-editor 的拖拽编辑功能和 H5-Dooring 类似,支持自由布局。开发者只需通过简单的鼠标操作,将所需的组件从组件库中拖拽到页面编辑区域,即可完成组件的添加。
同时,还可以对组件进行自由的布局调整、样式修改等操作,就像在使用一款专业的图形设计软件一样。这种直观的操作方式,极大地降低了开发门槛,提高了开发效率。例如,在创建一个电商产品展示页面时,开发者可以直接拖拽商品图片组件、价格组件、描述组件等,快速搭建出页面框架,然后再根据需求进行细节调整,整个过程可能只需要几分钟,而传统的开发方式可能需要花费数小时甚至更长时间。
2.2 丰富的自定义组件和插件

为了满足不同项目的多样化需求,tmagic-editor 支持丰富的自定义组件和插件。开发者可以根据项目特点,自行开发或引入第三方的组件和插件,拓展编辑器的功能。这意味着,无论你是在开发企业级应用、电商平台还是社交类网站,都能找到适合自己项目的组件和插件,实现个性化的页面构建。比如,在开发一个在线教育平台时,开发者可以引入自定义的课程视频播放组件、在线测试组件等,为用户提供更加丰富的学习体验。
2.3 强大的配置能力

tmagic-editor 具备强大的配置能力,开发者可以通过配置文件对编辑器进行全方位的定制。从组件的属性设置、事件绑定,到页面的布局方式、交互效果,都可以通过配置文件进行灵活调整。这种配置化的开发方式,不仅提高了开发效率,还使得代码的可维护性大大增强。例如,在开发一个多语言版本的网站时,开发者可以通过配置文件轻松切换不同语言的文本内容,而无需修改大量的代码。
2.4 支持 element-plus、tdesign-vue-next 等 UI 组件库并可扩展

在 UI 组件库方面,tmagic-editor 同样表现出色。它支持 element-plus、tdesign-vue-next 等流行的 UI 组件库,为开发者提供了丰富的组件选择。
同时,tmagic-editor 还具备良好的扩展性,开发者可以根据项目需求,轻松引入其他 UI 组件库。这使得开发者在构建页面时,能够根据项目的风格和需求,选择最合适的 UI 组件,打造出美观、易用的 Web 页面。
例如,在开发一个简约风格的管理后台时,开发者可以选择 element-plus 的组件,快速搭建出简洁明了的页面;而在开发一个时尚的电商平台时,tdesign-vue-next 的组件则能为页面增添更多时尚元素。
2.5. 支持移动、PC 布局

随着移动互联网的发展,响应式设计变得越来越重要。tmagic-editor 充分考虑到这一点,它支持移动、PC 布局,开发者可以通过简单的切换,实现同一页面在不同设备上的完美展示。无论是在手机、平板还是电脑上,用户都能获得一致的良好体验。例如,在开发一个新闻资讯类应用时,开发者可以使用 tmagic-editor 轻松创建适应不同设备的页面布局,让用户在手机上能够方便地浏览新闻内容,在电脑上则能获得更丰富的信息展示。
三、如何使用 tmagic-editor?
3.1 安装与初始化
使用 tmagic-editor 非常简单,首先需要在项目中安装相关依赖。如果你的项目是基于 Vue3 的,可以通过 npm 或 yarn 进行安装:
npm install tmagic-editor 安装完成后,在项目中引入 tmagic-editor 并进行初始化:
import { createApp } from 'vue';
import TmagicEditor from 'tmagic-editor';
import 'tmagic-editor/dist/index.css';const app = createApp(App);
app.use(TmagicEditor);
app.mount('#app'); 3.2 基本使用方法
在项目中引入 tmagic-editor 后,就可以在页面中使用它了。在 Vue 组件中,可以通过以下方式使用 tmagic-editor:
<template><tmagic-editor :config="editorConfig" @save="handleSave"></tmagic-editor>
</template><script setup>
import { ref } from 'vue';const editorConfig = ref({// 配置项
});const handleSave = (data) => {console.log('保存的数据:', data);
};
</script> 3.3 插件开发
tmagic-editor 还支持插件开发,通过插件可以拓展编辑器的功能。例如,开发一个导出 PDF 的插件:
import { definePlugin } from 'tmagic-editor';export default definePlugin({name: 'export-pdf',setup(editor) {editor.on('save', (data) => {// 导出PDF逻辑});}
});// 注册插件
import ExportPDFPlugin from './ExportPDFPlugin.js';const editorConfig = ref({plugins: [ExportPDFPlugin]
}); 当然还有更多能力大家可以自行探索挖掘。
最近我们H5-Dooring零代码编辑器也在持续更新,目前已支持多布局模式和页面权限控制能力,组件商店以及数据埋点分析等功能:

大家感兴趣也可以参考体验一下:
https://dooring.vip
后期还会持续迭代更新H5-Dooring以及最新的进展,欢迎大家交流反馈,如果你也有好的想法或者产品,欢迎在留言区交流~
往期精彩
零代码+AI的阶段性复盘
文档引擎+AI可视化打造下一代文档编辑器
爆肝1000小时, Dooring零代码搭建平台3.5正式上线
从零打造一款基于Nextjs+antd5.0的中后台管理系
相关文章:
tmagic-editor,腾讯开源的基于 Vue3 的页面可视化编辑器
hi, 大家好, 我是徐小夕. 之前一直在社区分享零代码&低代码的技术实践,也陆陆续续设计并开发了多款可视化搭建产品,比如: H5-Dooring(页面可视化搭建平台)V6.Dooring(可视化大屏搭建平台)F…...
K8s学习总结
文章目录 介绍Kubernetes 核心组件k8s安装环境安装组件 常用命令测试1. 创建一个测试应用程序2. 检查 Pod 是否运行 3. 暴露应用让外部访问4. 查看服务的暴露端口5. 访问 nginx 服务6. 验证节点调度 如有错误,敬请指针,谢谢! 介绍 Kubernetes࿰…...
正则表达式(Regular expresssion)
正则表达式 匹配单次 . :匹配任意一个字符 [ ] :匹配[ ]里举例的任意一个字符 /d :匹配数字0-9 /D :匹配非数字 /s :匹配空白或tab建 /S :匹配非空白 /w :…...
Python的那些事第二十一篇:Python Web开发的“秘密武器”Flask
基于 Flask 框架的 Python Web 开发研究 摘要 在 Web 开发的江湖里,Python 是一位武林高手,而 Flask 则是它手中那把小巧却锋利的匕首。本文以 Flask 框架为核心,深入探讨了它在 Python Web 开发中的应用。通过幽默风趣的笔触,结合实例和表格,分析了 Flask 的特性、优势以…...
MySQL的聚簇索引与非聚簇索引
前言 首先我们要了解到,聚簇索引只能有一个,而非聚簇可以有多个。在本文中可以了解到,范围查询时聚簇索引的优势,以及非聚簇索引在频繁更新时的劣势。 在MySQL中,主键索引通常就是聚簇索引,如果没有显式…...
vscode的一些实用操作
1. 焦点切换(比如主要用到使用快捷键在编辑区和终端区进行切换操作) 2. 跳转行号 使用ctrl g,然后输入指定的文件内容,即可跳转到相应位置。 使用ctrl p,然后输入指定的行号,回车即可跳转到相应行号位置。...
C++11 thread
文章目录 C11 线程库线程对象的构造方式无参的构造函数调用带参的构造函数调用移动构造函数thread常用成员函数 this_thread命名空间join && detachmutex C11 线程库 线程对象的构造方式 无参的构造函数 1、调用无参的构造函数,调用无参的构造函数创建出来的线程对象…...
rabbitmq五种模式的总结——附java-se实现(详细)
rabbitmq五种模式的总结 完整项目地址:https://github.com/9lucifer/rabbitmq4j-learning 一、简单模式 (一)简单模式概述 RabbitMQ 的简单模式是最基础的消息队列模式,包含以下两个角色: 生产者:负责发…...
Qt中基于开源库QRencode生成二维码(附工程源码链接)
目录 1.QRencode简介 2.编译qrencode 3.在Qt中直接使用QRencode源码 3.1.添加源码 3.2.用字符串生成二维码 3.3.用二进制数据生成二维码 3.4.界面设计 3.5.效果展示 4.注意事项 5.源码下载 1.QRencode简介 QRencode是一个开源的库,专门用于生成二维码&…...
Java数据结构---链表
目录 一、链表的概念和结构 1、概念 2、结构 二、链表的分类 三、链表的实现 1、创建节点类 2、定义表头 3、创建链表 4、打印链表 5、链表长度 6、看链表中是否包含key 7、在index位置插入val(0下标为第一个位置) 8、删除第一个关键字key …...
mongodb是怎么分库分表的
在构建高性能的数据库架构时,MongoDB的分库分表策略扮演着至关重要的角色,它通过一系列精细的步骤确保了数据的高效分布与访问。以下是对这一过程的详尽阐述,旨在提供一个清晰且优化过的理解框架。 确定分片键(Shard Key…...
C++自研游戏引擎-碰撞检测组件-八叉树AABB检测算法实现
八叉树碰撞检测是一种在三维空间中高效处理物体碰撞检测的算法,其原理可以类比为一个管理三维空间物体的智能系统。这个示例包含两个部分:八叉树部分用于宏观检测,AABB用于微观检测。AABB可以更换为均值或节点检测来提高检测精度。 八叉树的…...
spring boot对接clerk 实现用户信息获取
在现代Web应用中,用户身份验证和管理是一个关键的功能。Clerk是一个提供身份验证和用户管理的服务,可以帮助开发者快速集成这些功能。在本文中,我们将介绍如何使用Spring Boot对接Clerk,以实现用户信息的获取。 1.介绍 Clerk提供…...
一种动态地址的查询
背景 当我们注入一个进程,通过函数地址进行call时经常会遇到这样的一个问题。对方程序每周四会自动更新。更新后之前的函数地址就变化了,然后需要重新找地址。所以,我就使用了一个动态查询的方式。 第一步:先为需要call的函数生…...
周雨彤:用角色与生活,诠释审美的艺术
提到内娱审美优秀且持续在线的女演员,周雨彤绝对是其中最有代表性的一个。 独树一帜的表演美学 作为新生代演员中的实力派代表,周雨彤凭借细腻的表演和对角色的深度共情,在荧幕上留下了多个令人难忘的“出圈”形象。在《我在他乡挺好的》中…...
使用jks给空apk包签名
1、在平台官方下载空的apk包(上传应用时有提醒下载) 2、找到jdk目录,比如C:\Program Files\Java\jdk1.8\bin,并把下载的空包apk和jks文件放到bin下 3、以管理员身份运行cmd,如果不是管理员会签名失败 4、用cd定位到…...
500. 键盘行 771. 宝石与石头 简单 find接口的使用
500. 键盘行1 给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。 请注意,字符串 不区分大小写,相同字母的大小写形式都被视为在同一行。 美式键盘 中: 第一行由字符 "qwer…...
仙剑世界手游新手攻略 仙剑世界能用云手机玩吗
欢迎来到《仙剑世界》手游的仙侠世界!作为新手玩家,以下是一些详细的攻略和建议,帮助你快速上手并享受游戏的乐趣。 一、新手职业推荐 1.轩辕:这是一个偏辅助的职业,可以给队友提供输出加成等增益效果,不过…...
[题解]2024CCPC重庆站-小 C 的神秘图形
Sources:K - 小 C 的神秘图形Abstract:给定正整数 n ( 1 ≤ n ≤ 1 0 5 ) n(1\le n\le 10^5) n(1≤n≤105),三进制字符串 n 1 , n 2 ( ∣ n 1 ∣ ∣ n 2 ∣ n ) n_1,n_2(|n_1||n_2|n) n1,n2(∣n1∣∣n2∣n),按如下方法…...
NPS内网穿透SSH使用手册
1、说明 nps-一款轻量级、高性能、功能强大的内网穿透代理服务器 github地址:https://github.com/ehang-io/nps 官网文档地址:https://ehang-io.github.io/nps/#/?idnps 2、服务端 下载地址:https://github.com/ehang-io/nps/releases 下…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
