H5 可视化编辑器

H5 可视化编辑器是面向营销活动、邀请函、宣传落地页的零代码、低代码搭建工具:拖拽画布、配置属性,最终产出可在移动端浏览器运行的页面。

编辑器和正式 H5 要拆开——编辑态很重,运行态只吃一份 JSON。

需求分析

业务功能需求

物料组件能力

  • 基础物料:文本、图片、矩形形状、音频、视频、链接、按钮;
  • 扩展物料:表单、轮播、抽奖、倒计时等业务组件;

  • 后续可按需扩展更多自定义业务组件。

画布编辑能力

  • 新增元素:拖拽组件库物料到画布,或者上传资源生成元素;
  • 元素操作:拖拽移动位置、缩放大小、旋转、复制、删除、锁定、显隐;
  • 属性编辑:不同组件拥有独立属性面板;
    • 文本:字体、字号、颜色、行高、对齐;
    • 图片:裁剪、圆角、阴影、透明度;
  • 动画编辑:入场动画、强调动画、出场动画,支持设置延迟、时长,画布实时预览动画效果;
  • 页面管理:多页H5(翻页画册)、长滚动页面、满屏页,新增/复制/删除页面;
  • 辅助能力:吸附对齐、参考线、标尺、撤销重做、图层管理、多选批量操作。

预览与发布

  • 实时预览:编辑过程预览,完整手机模式预览;
  • 作品存储:将画布所有页面、组件、样式、动画序列,序列化为结构化数据;
  • 渲染输出:解析存储的数据,在移动端渲染出最终H5页面;
  • 导出能力:预览链接、二维码、部分开源项目支持导出完整HTML源码。

后端交互需求

  • 保存:将页面配置JSON、图片/音视频等资源上传服务端;
  • 读取:根据作品ID拉取JSON配置,前端渲染器解析渲染页面;
  • 表单类H5还需要提供数据提交、数据收集接口。

技术痛点需求

移动端H5编辑器有两套主流适配方案:

  • 固定尺寸:画布固定模拟手机尺寸(如375px宽度),输出页面按比例缩放,绝大多数营销H5工具采用该模式;

  • 百分比流式布局:使用百分比单位,页面自适应任意屏幕宽度,适合长页面。

关键技术疑问 说明
满屏页、长页面如何处理? 满屏页单页高度等于视口;长页面需要关闭画布高度限制,允许页面向下无限延伸,iframe 画布需要修改内部 body 滚动属性
自定义 JS 交互? 编辑器提供自定义代码组件,注入脚本;注意安全沙箱风险,生产环境需要做脚本隔离
数据来源? 全部页面结构、组件属性、动画信息存储为 JSON;图片音视频资源存储在对象存储服务
组件扩展? 设计组件注册机制,开发者编写组件 + 属性配置,注册到组件库即可使用
CSS 样式如何存储? 不直接写原始 CSS,全部存储样式属性键值对,渲染阶段动态生成内联样式;复杂动画存储动画配置,渲染时加载 animate.css 等动画库

三类产品实现方案对比

市面上H5可视化工具分为三类实现路线:

方案 定制化程度 优点 缺点 适用人群
直接在线编辑代码 最高 完全自由,没有限制 门槛高,需要懂HTML/CSS/JS,非业务人员无法使用 开发人员
在线编辑JSON配置 较高 数据结构可控,逻辑灵活 使用者需要理解JSON结构,普通运营人员上手难 开发人员
拖拽零代码编辑器(底层JSON) 拖拽操作,门槛低,所见即所得 新增组件需要开发扩展,复杂交互能力有限 运营、设计师、开发人员

备注:市面上绝大多数商用H5工具(易企秀、Maka、兔展)以及开源项目,底层本质都是拖拽操作生成JSON配置,渲染器解析JSON生成H5页面

实现原理

整个编辑器系统分为两大核心模块:编辑模块(编辑器)渲染模块(预览/发布)

核心:编辑态和运行态完全解耦。编辑器很重,包含拖拽、属性面板;而最终产出H5页面只需要轻量渲染器,不需要编辑器相关代码。

编辑器模块(编辑态)

  • 左侧物料组件库,中间画布编辑区,右侧属性配置面板;
  • 用户拖拽物料,画布维护内存页面数据模型(JSON);
  • 用户修改右侧属性面板,同步更新内存JSON;
  • 做画布交互:拖拽、缩放、多选、吸附、动画配置,实时同步数据模型;
  • 保存时,把完整JSON提交后端存储。

渲染模块(预览/正式H5页面,运行态)

  • 获取后端返回的页面JSON配置;
  • 遍历JSON,通过动态组件,还原页面、组件、样式、动画;
  • 不依赖编辑器代码,只依赖轻量化渲染SDK,在手机浏览器直接运行。

JSON配置结构示意:

{
  "pages": [
    {
      "pageId":"page01",
      "style":{"background":"#ffffff"},
      "elements":[
        {
          "compType":"text",
          "props":{"content":"标题文字","fontSize":"28px","color":"#333"},
          "style":{"left":10,"top":20,"width":300,"height":60},
          "animate":{"in":{"name":"fadeIn","duration":1000,"delay":0}}
        }
      ]
    }
  ]
}

JSON字段含义:

  • pages:页面数组,多页翻页H5会存在多个page;
  • elements:当前页面下所有组件数组;
  • compType:组件类型,文本/图片/视频;
  • props:组件业务属性;
  • style:定位、大小、颜色等样式;
  • animate:动画配置,动画名称、时长、延迟。

核心实现思路

画布拖拽系统

  • 开源常用库:react-dnd(React 生态)、vuedraggable(Vue 生态),实现物料拖拽入画布;
  • 画布内部元素的移动、缩放:react-draggablevue-draggable-resizable
  • 画布一般使用iframe隔离环境,防止编辑器页面的CSS、JS污染编辑中的H5页面。

组件化设计

采用双套组件设计:

  • 编辑态组件:画布内可拖拽、可选中、带选中框、控制点,只在编辑器内部运行;
  • 运行态组件:干净的展示组件,只负责渲染内容,用于预览和正式发布页面。

提供组件注册入口,新增业务组件,同时编写编辑态+运行态组件,再配置属性表单,即可扩展物料。

属性面板

根据当前选中组件的compType,动态渲染右侧属性表单;表单修改值直接回写页面JSON数据模型,画布实时响应更新。

动画系统

编辑器层维护动画配置JSON;运行态引入动画库(animate.css),读取配置给DOM绑定动画class、设置动画延迟和时长。

数据持久化

  • 保存:把完整页面JSON传给后端;图片音视频资源先上传OSS,JSON内只保存资源URL;
  • 本地缓存:编辑过程使用 IndexedDB 做自动本地备份,防止浏览器刷新丢失作品。

渲染器

运行态渲染器只接收JSON配置,循环遍历pages和elements,动态渲染组件。

  • Vue:使用<component :is="compType">动态组件;
  • React:使用动态导入组件,根据type渲染对应组件。

辅助交互能力

  • 图层系统:组件Z轴管理,上移下移、锁定隐藏;
  • 撤销重做:维护操作栈,记录每一次数据变更;
  • 多选批量操作:按住Ctrl多选组件,统一修改样式、对齐。

安全注意点

  • 自定义JS脚本风险:用户注入恶意脚本,正式发布环境建议沙箱iframe隔离自定义脚本;
  • XSS风险:文本内容需要做转义,防止XSS注入攻击。

主流可视化编辑器介绍

分为商用SaaS产品(开箱即用,面向运营)、开源项目(可二次开发,面向开发人员)。

商用SaaS H5编辑器

产品 官网 特点
Maka https://www.maka.im/muban 海量营销模板,操作简单,面向中小企业营销活动,付费SaaS服务
易企秀 https://www.eqxiu.com 国内头部H5营销平台,模板极多,支持表单、抽奖互动,支持私有化部署
码良 https://godspen.ymm56.com 运满满(满帮)出品,支持复杂交互与自定义脚本,适合企业活动 H5
百度H5 https://h5.bce.baidu.com 百度团队出品,模板制作H5,需要实名,维护更新节奏慢
兔展 https://www.rabbitpre.com/template 大量营销互动玩法,支持多人协作,企业版私有化部署
初页 https://www.ichuye.cn 侧重邀请函、图文长页类H5

商用SaaS优势:开箱即用,大量现成模板,不用写代码;缺点:私有化部署成本高,定制能力受限。

开源H5可视化编辑器(可二次开发)

H5-Dooring

Github:https://github.com/MrXujiang/h5-Dooring

技术栈:React + dva + antd + react-dnd + Koa2

特点:免费开源,完整H5落地页解决方案;支持拖拽编辑、预览、保存模板、移动端适配;支持导出页面源码;组件可扩展;同时支持H5和大屏。

局限:部分高级交互组件需要自行扩展。

H5DS

Github:https://github.com/h5ds/h5ds

技术栈:React + Mobx,后端EggJS

特点:内核插件化架构,插件可动态加载;支持动画时间轴精细控制,支持PC/手机双画布;可改造为PPT、BI等工具;v5开源,v6版本商业授权

适合:需要深度二次开发,做自定义可视化工具。

Quark-H5

Gitee:https://gitee.com/kiming209_admin/quark-h5

技术栈:Vue2 + Vuex + Element-UI + Koa2 + MongoDB

特点:Vue技术栈,star数量高;拖拽编辑,动画预览;后端完整,数据库存储作品JSON。

适合Vue技术栈团队快速搭建私有化H5编辑器。

鲁班H5(luban-h5)

文档:https://ly525.github.io/luban-h5/zh/

技术栈:Vue2,后端Strapi

特点:参考线、吸附、对齐、复制删除页面元素;内置表单组件;支持模板库;表单数据收集;支持二维码预览。

局限:部分高级功能暂未开放,如PSD一键转H5、自定义脚本。

H5-Editor

Github:https://github.com/a7650/h5-editor

技术栈:Vue2 + Element-UI + Vuex

特点:纯前端编辑器,不需要后端;标尺参考线、吸附、图层管理、多选对齐;indexDB本地备份;快捷键支持;插件系统,可二次开发;支持一键导出HTML。

适合:优先做前端编辑器,后端可以后续接入。

GrapesJS(国外通用网页编辑器)

Github:https://github.com/GrapesJS/grapesjs

不专门面向移动端H5,是通用网页拖拽编辑器;插件生态丰富,支持自定义HTML/CSS/JS代码,适合做通用建站工具。

© lizhao all right reserved,powered by Gitbook文件修订时间: 2026-08-31 20:21:41

results matching ""

    No results matching ""