react-email-editor

拖拽式生成精美邮件,无需写代码,快速集成到 React 应用

react-email-editor 是一个基于 React.js 的拖拽式邮件编辑器组件,旨在帮助开发者快速构建可视化邮件编辑功能。它解决了传统邮件模板开发效率低、非技术人员难以参与的问题,通过直观的拖拽界面,让用户无需编写 HTML 即可生成响应式邮件。核心能力包括:丰富的组件库(文本、图片、按钮、分隔线等)、实时预览、模板导入导出、自定义样式与主题,以及事件回调机制,方便与业务逻辑集成。编辑器基于 MJML 构建,输出兼容性良好的邮件 HTML,支持桌面和移动端适配。项目采用 TypeScript 编写,类型安全,易于维护。目前星标数超过 5000,社区活跃,适合需要集成邮件编辑功能的企业级应用、营销平台或 SaaS 服务。

开源 free 办公效率
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 5227
维护状态 活跃
是否开源 是
定价模式 free

项目数据

分类办公效率
开发团队unlayer
所属国家
定价模式free
价格说明开源组件,MIT许可证,完全免费,可自行部署使用。
访问状态
是否开源是
开源协议MIT
主要语言TypeScript
技术栈/模型ai-assistant,ai-email,ai-email-assistant,ai-email-builder,ai-email-editor,ai-email-generator,ai-email-template-editor,ai-tools,builder,drag-and-drop,email,email-builder,email-editor,email-marketing,email-template,html-email,html-emails,react-component,template
GitHub 星标★ 5227
30天Star增速
HF 下载量
上线时间2017-10-01 00:00:00
最近更新2026-09-22 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数5

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 6 步

环境要求

  • 一个已有的 React 项目(具备 React 构建流程,README 说明需嵌入自己的 React build 中)
  • 已安装 Node.js 与 npm(用于执行 npm install)
  • 示例代码使用 react-dom/client 的 createRoot,建议 React 18 及以上
  • 项目中可修改的入口文件(示例中使用 id 为 app 的 DOM 节点)

安装与启动步骤

  1. 1安装编辑器组件

    在项目根目录执行 npm 安装命令,把 react-email-editor 加入 dependencies,安装后即可在代码中引入。

    npm install react-email-editor --save
  2. 2引入组件与类型

    从 react-email-editor 默认导出 EmailEditor 组件,并按需引入 EditorRef、EmailEditorProps 两个类型。

    import EmailEditor, { EditorRef, EmailEditorProps } from 'react-email-editor';
  3. 3创建编辑器引用

    用 useRef 持有 EditorRef,通过 emailEditorRef.current?.editor 拿到 unlayer 实例来调用导出与加载方法。

    const emailEditorRef = useRef(null);
    const unlayer = emailEditorRef.current?.editor;
  4. 4编写导出 HTML 方法

    调用 unlayer.exportHtml 回调,从返回对象中取出 design 与 html,这里用 console.log 打印导出结果。

    const exportHtml = () => {
      const unlayer = emailEditorRef.current?.editor;
      unlayer?.exportHtml((data) => {
        const { design, html } = data;
        console.log('exportHtml', html);
      });
    };
  5. 5渲染编辑器组件

    在 JSX 中挂载 EmailEditor,传入 ref 与 onReady;onReady 里可调用 unlayer.loadDesign 载入已有模板 JSON。

  6. 6挂载渲染应用

    使用 createRoot 把 App 渲染到页面上 id 为 app 的节点,运行项目后即可看到拖拽式邮件编辑器。

    createRoot(document.getElementById('app')!).render();

关键配置

配置项必填说明示例
ref是编辑器实例引用,用于调用 exportHtml、loadDesign 等方法emailEditorRef
onReady否编辑器就绪后的回调,参数为 unlayer 实例,可用于加载模板(unlayer) => { unlayer.loadDesign(templateJson); }

如何确认成功

运行项目后页面渲染出拖拽式邮件编辑器,点击 Export HTML 按钮,浏览器控制台打印出导出的邮件 HTML。

常见问题

Q:如何导出邮件 HTML?

A:通过 ref 取到 unlayer 实例,调用 unlayer.exportHtml((data) => {...}),回调参数中包含 design(设计 JSON)和 html(邮件 HTML)。

Q:如何加载已有模板?

A:在 onReady 回调中拿到 unlayer 后调用 unlayer.loadDesign(templateJson),模板 JSON 可通过 loadDesign 或 exportHtml 回调获得。

Q:必须用 TypeScript 吗?

A:不必,组件本身用 TypeScript 编写并导出 EditorRef、EmailEditorProps 等类型,普通 JSX 项目同样可以使用。

注意事项

  • README 明确说明该组件需安装到 NPM 并包含在你自己的 React 构建流程中使用,不是独立可运行的完整应用。
  • 示例代码使用了 react-dom/client 的 createRoot,属于 React 18 的写法,低版本 React 需自行改写挂载方式。
  • README 未给出 Unlayer 账号、API Key 或服务端相关配置说明,如有需要请参考官网 unlayer.com。

核心亮点

  • 拖拽式可视化编辑,零代码生成响应式邮件,大幅降低邮件模板制作门槛
  • 基于 MJML 生成兼容性强的 HTML,确保在主流邮件客户端正确渲染
  • 提供丰富的组件库和自定义选项,支持主题、样式和事件回调,灵活适配业务需求

不足之处

  • 文档偏少,高级定制需深入源码或依赖社区示例
  • 编辑器 UI 为英文,国际化支持需自行扩展

适用场景

  • SaaS 平台集成邮件编辑功能,让用户自助设计营销邮件
  • 企业内部邮件模板管理,非技术人员快速制作通知或简报
  • 开发者快速搭建邮件编辑器原型,减少从零开发成本

替代项目

Unlayer、Mailjet 编辑器、MJML

项目介绍

react-email-editor 是设计创意领域的开源项目,由 unlayer 开发,2017 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(5,227)位列前 9%,在设计创意分类的 161 个项目里位列前 9%。

近 41 天,它的 GitHub 星标从 5,197 增加到 5,227,净增 30。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-22。开源组件,MIT许可证,完全免费,可自行部署使用。

它主要面向的使用场景是:SaaS平台集成邮件编辑功能,让用户自助设计营销邮件。同类可对比的替代方案包括 Unlayer、Mailjet 编辑器、MJML。

上一篇:Design-Learn

下一篇:awesome-claude-design

同类项目推荐

open-design 开源

让 AI 代工做界面,本地跑完随手改

Best DeepSeek Harness Design Plugin. The open-source Claude Design alternative. ️ L···

★ 97629 2026-08-09
Excalidraw 开源

开源虚拟白板协作工具

Virtual whiteboard for sketching hand-drawn like diagrams

★ 132673 2026-08-19
morph 开源

用数据直接生成设计、动画和交互可视化

Morph is a free and open-source tool for creating designs, animations or interactive···

★ 126 2026-08-09
ChatGPT-MidJourney-prompt 开源

输入一句话,AI帮你生成Midjourney完整提示词

This is a ChatGPT based prompt generation model for MidJorney. The purpose of this m···

★ 343 2026-08-09