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 下…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
