项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 5255
使用教程
环境要求
- 一个已有的 React 项目(具备 React 构建流程,README 说明需嵌入自己的 React build 中)
- 已安装 Node.js 与 npm(用于执行 npm install)
- 示例代码使用 react-dom/client 的 createRoot,建议 React 18 及以上
- 项目中可修改的入口文件(示例中使用 id 为 app 的 DOM 节点)
安装与启动步骤
-
1安装编辑器组件
在项目根目录执行 npm 安装命令,把 react-email-editor 加入 dependencies,安装后即可在代码中引入。
npm install react-email-editor --save -
2引入组件与类型
从 react-email-editor 默认导出 EmailEditor 组件,并按需引入 EditorRef、EmailEditorProps 两个类型。
import EmailEditor, { EditorRef, EmailEditorProps } from 'react-email-editor'; -
3创建编辑器引用
用 useRef 持有 EditorRef,通过 emailEditorRef.current?.editor 拿到 unlayer 实例来调用导出与加载方法。
const emailEditorRef = useRef<EditorRef>(null); const unlayer = emailEditorRef.current?.editor; -
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渲染编辑器组件
在 JSX 中挂载 EmailEditor,传入 ref 与 onReady;onReady 里可调用 unlayer.loadDesign 载入已有模板 JSON。
<EmailEditor ref={emailEditorRef} onReady={onReady} /> -
6挂载渲染应用
使用 createRoot 把 App 渲染到页面上 id 为 app 的节点,运行项目后即可看到拖拽式邮件编辑器。
createRoot(document.getElementById('app')!).render(<App />);
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
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
上一篇:Design-Learn
同类项目推荐
poster-studio
开源
浏览器里做小红书封面,开箱即用零门槛
乔木画布:小红书封面、知识卡片和社媒海报设计工作台 | Browser poster studio for Xiaoh···
Design-Learn
开源
把参考网站的设计风格,一键变成 AI 可用的规则。
Extract reference-site design language into reusable rules for AI coding tools.
noisemaker
开源
用几行代码生成酷炫噪声纹理和视觉特效
A friendly and extendable shader art engine.
generative-art-in-go
开源
边看书边敲代码,用Go画出你的第一幅生成艺术
A companion source code repository to the book "Generative Art in Go"
sketchy
开源
用 Go 写代码,轻松生成惊艳的生成艺术
A framework for creating generative art in Go
web-builder
开源
拖拽加AI,快速生成响应式网站,零代码也能做UI
AI 驱动 UI 生成和发布的低代码平台,基于TailwindCss,通过拖拽可视化快速构建现代化响应···
guizang-material-illustration
开源
让AI生成带中文标注的材质感插画和美化图表
归藏的材质插画 skill:生成带字解释图、图表美化和参考辅助配图。
vsvg
开源
让绘图机用户快速处理 SVG,告别卡顿和格式烦恼
Fast and portable tools for plotter users
fantasy-dongfang-jianyuehaibao
开源
一键生成有文化底蕴的东方海报,标题版式全搞定
东方文化编辑海报 v2 Codex skill:Image 2 出图、中文标题精炼、真实文化物证、A/B/C 三联···
