编辑器框架比较

GrapesJS 与 Craft.js

比较两种开源方法来构建可视化编辑器、页面构建器和SaaS编辑体验。了解 GrapesJS 和 Craft.js 在架构、React 集成、编辑器基础设施、定制、可扩展性、存储和生产开发上的差异。

两者都是开源且都是框架——都不是托管产品Craft.js 设计上是 React 优先;GrapesJS 作为库运行于任意页面以下每个声明均有日期并链接至项目自身文档

Craft.js

React-first 编辑器基础

  1. 你的申请你的
  2. Craft.js框架
  3. 你的编辑器 UI你的

编辑器是你设计的React应用程序。

GrapesJS

更完整的可视化编辑器基础

  1. 你的申请你的
  2. GrapesJS框架
    • 画布
    • 方块
    • Style Manager
    • 层次
  3. 你的后台你的

编辑组成员齐全到达;你扩展它。

两分钟

哪个框架更适合你的产品?

关于你的堆栈、输出以及你想拥有多少编辑器的五个问题。结果会列出驱动它的答案,这样你可以在具体细节上不同意,而不是结论。

0 的 5 回答了
问题 1

你的前端栈是什么?

问题 2

编辑应该主要制作什么?

问题 3

你自己想建立多少编辑基础设施?

问题 4

谁会使用编辑器?

问题 5

框架独立性有多重要?

快速回答

简短版,细节之前

这两个项目都是开源框架,你安装到你已经拥有的应用中。区别在于它们从哪里开始。

选择Craft.js

你的应用程序是React,编辑器也是React应用程序。

信号

  • 你的应用非常注重React。
  • 你的编辑器基本上基于React组件
  • 你希望对编辑器架构有最大控制权
  • 你已经习惯于构建编辑器用户体验的重要部分
  • 你的输出与React紧密相关

你用一个作为组件模型的编辑模型来交换到第一次编辑的时间。

请阅读Craft.js的文档

选择GrapesJS

你需要一个能正常工作的可视化编辑器来扩展,而不是用一组原语来组装。

信号

  • 你需要一个更完整的视觉编辑器基础
  • 你需要内置编辑器基础设施
  • 你需要块、组件、样式、图层和资源
  • 你需要支持多个前端环境
  • 你想用插件扩展编辑器
  • 你正在构建一个SaaS的可视化编辑器
  • 你需要一个可嵌入的页面构建器
  • 你需要在一个引擎中集成邮件和页面编辑

你用一个已经在第一天就开始工作的编辑,牺牲了一些架构上的自由。

从GrapesJS开始
架构

Craft.js 与 GrapesJS:你实际上在建造什么?

页面的其他部分也取决于这个决定。两个框架都给你一个节点树、拖拽和序列化。它们的不同之处在于编辑器在树周围已经存在多少内容。

Craft.js

React → Craft.js →你的组件→编辑器 UI

  1. 你的申请你自己写和拥有的代码
  2. React你自己写和拥有的代码
  3. Craft.js开源框架
  4. 你的组成部分你自己写和拥有的代码
  5. 你的编辑器 UI你自己写和拥有的代码
  6. 你的后台你自己写和拥有的代码

Craft.js 提供节点树、拖拽行为、历史和序列化。用户看到的一切——面板、工具栏、属性控件、块面板——都是你用自己组件编写的 React。这就是设计的意义,而不是空白。

GrapesJS

你的应用→ GrapesJS →后端

  1. 你的申请你自己写和拥有的代码
  2. GrapesJS开源框架

    框架已包含的编辑器子系统

    • 画布
    • 组成部分
    • 方块
    • Style Manager
    • 层次
    • 资产
    • Commands
    • 存储
  3. 你的后台你自己写和拥有的代码

GrapesJS 提供了一个可用的编辑器:画布、组件模型、块调色板、可视化样式管理器、图层树、资产管理器、命令注册表和存储层。你可以重新设计它,替换面板,添加插件——但你不会一开始就写插件。

作者是谁

  • 你自己写和拥有的代码
  • 开源框架

Craft.js 给你一个以 React 为先的基础。GrapesJS 给你一个更广泛的视觉编辑器基础。

这两个框架都不是平台。它们都不提供CMS、托管、认证、用户账户、计费、权限、多租户或发布流水线。这些都属于应用双方,任何将它们归为同一列的比较都是错误的衡量标准。

功能比较

GrapesJS 与 Craft.js,各能力

读单元格,不要勾选或划号。“需要你的编辑器实现”并不等同于“缺失”,“你的应用”也不等于“不支持”——这张表底部三分之一的大部分内容两者都是相同的,因为它们都是框架而非产品。

能力GrapesJSCraft.js
主要架构可视化编辑器框架React 编辑器框架
React 依赖可选必修
框架灵活性框架无关性仅限React
画布内置框架功能
拖放内置内置
组成部分内置框架功能
方块内置需要你的编辑器实现
层次内置官方配套包
样式管理内置需要你的编辑器实现
资产内置需要你的编辑器实现
Commands内置自定义实现
设备预览内置需要你的编辑器实现
响应式编辑内置需要你的编辑器实现
撤销/重做内置内置
自定义编辑器 UI内置,完全可定制你从头到尾
自定义组件内置框架功能
自定义方块内置需要你的编辑器实现
模板通过插件自定义实现
存储集成内置应用责任
JSON / 项目数据内置内置
HTML/CSS 输出内置自定义实现
React 组件渲染React 编辑器 UI ;画布渲染 HTML模型原生
电子邮件工作流程通过插件自定义实现
MJML通过插件不适用
插件生态系统插件加上市场小型生态系统
API 可扩展性内置框架功能
自托管支持支持
白标内置,完全可定制你从头到尾
SaaS 嵌入应用责任应用责任
自定义后端应用责任应用责任
自定义数据库应用责任应用责任
认证应用责任应用责任
权限应用责任应用责任
出版应用责任应用责任
多租户应用责任应用责任

上面每一行都是从每个项目自己的文档、仓库和npm注册表条目中读取的 2026-09-03. 当能力通过框架自身的生态系统可达时,细胞会明确表示,而不是标记其缺失。资料来源: Craft.js 概述 · Craft.js 编辑器 API · Craft.js 层封装 · Craft.js 在 npm 上 · GrapesJS 文档 · GrapesJS 在 npm 上

生态系统信号

当前发行与社区规模

受欢迎程度不是技术性论点,这张表也不是结论。之所以在这里,是因为发布节奏和社区规模会影响你在出现故障时等待答案的时间——这才是真正的工程成本,而星数本身则不同。

两个项目当前发布的版本、许可和仓库星数
包装最新版本许可发表存储器星
grapesjs0.23.6BSD-3-Clause2026-08-2526,185
@craftjs/core0.2.12MIT2025-02-148,738

请阅读上述日期的npm注册表和GitHub API。这两个仓库均未被归档。Craft.js仍运行在0.2.x系列,其最新版本比本页早了一年多;存在0.3.0 alpha版本,但自2022年以来未更新。这是一个值得在多年承诺前了解的事实——单凭这一点并不足以排除该项目,目前运行的团队也未被困住。 Craft.js 将 React 声明为跨节点的对等依赖 React 16.8 – 19. Craft.js 还发布了两个配套软件包: @craftjs/layers 以及 @craftjs/utils.

工作范围

你需要构建多少编辑基础设施?

本页最有用的专栏。它不是每个框架缺失的清单——而是工作落点的清单。

能力Craft.jsGrapesJS
编辑基金会框架框架
画布核心编辑器架构内置
组件模型面向React的内置
方块需要你的编辑器实现内置
样式控制需要你的编辑器实现内置
层次官方配套包内置
资产管理需要你的编辑器实现可得
设备控制需要你的编辑器实现可得
Commands核心编辑器架构可得
存储应用 / 集成Storage Manager
定制UI完全控制高度可定制

“需要你的编辑器实现”意味着框架会给你状态和APIs,你自己渲染表面。对于想让表面成为他们自己的团队来说,这就是功能。对于本季度需要工作编辑器的团队来说,是时间安排。

这两列都不是捷径。其中一列只是从更前面开始,另一列则从接近你自己组件模型的地方开始。

贸易

无头编辑器与可视化编辑器的基础

本页上的每个优势都有相应的代价。这里它们并排展示,形状相同,大小相同。

Craft.js

最适合那些希望拥有React原生架构和自设计编辑器界面的团队。

你能得到什么

  • 编辑器是React,从上到下——没有第二个渲染模型需要考虑
  • 你的制作组件就是画布上的组成部分
  • 完全控制编辑器 UX的过程,因为所有内容都是你渲染的
  • 一个小巧、可读且表面稳定的API磁芯
  • 序列化状态是一个可以根据你的模式进行调整的普通节点树

费用

  • 面板、属性控制、块调色板和设备切换都由你来构建
  • 没有可视化样式管理器——你自己设计用户的控制
  • 开箱即用的没有 HTML/CSS 导出路径;你自己渲染树
  • 绑定在React上,所以编辑器无法切换到其他前端
  • 一个小型生态系统:几个现成的扩展可以插入

成本是设计编辑器界面。回报是编辑器完全符合你的架构。

GrapesJS

最适合那些希望扩展可视化编辑器基础设施的团队。

你能得到什么

  • 画布、块、图层、样式、资源和命令已经存在并协同工作
  • 响应式设备编辑和可视化样式管理器从第一天起就有了
  • 它可以作为库运行在任何页面中,所以编辑器不会被绑定在一个前端框架上
  • 一个文档化的插件 API 以及一系列现成扩展
  • 开箱即用的干净HTML和CSS,以及可序列化的项目数据

费用

  • 画布是HTML,不是你的React树——React设计系统必须作为组件镜像
  • 你继承的是编辑器架构,而不是设计一个
  • 深度定制意味着在你能弯曲它们之前,先学会了APIs模块
  • 匹配一个非常有主见的产品设计需要在面板上真正下功夫

代价是学习别人设计的架构。回报是一个已经能用的编辑器。

看它跑起来

三个编辑器,一个引擎

在新标签页中打开

官方演示:将方块拖到画布上,在样式管理器中编辑样式,切换设备宽度,检查层树。没有插件,没有配置——这就是核心内容。

grapesjs.com/demo.html开源

来自第三方来源的加载

这三者都运行同一个开源引擎。它们的区别在于配置、面板和插件——这正是“可扩展可视化编辑器框架”的实际形态。演示只有在你选择加载后,才会从第三方来源加载。

React

如果你的产品是React优先的

这是大多数读者真正会想到的问题,而坦率的答案则各有不同。

Craft.js 很适合当

编辑器不是你React应用中的组件——它是你的React应用。

信号

  • 该编辑器本质上是一个 React 应用程序
  • 你的内容直接映射到 React 组件
  • 你希望 React 的组件模型来驱动编辑器
  • 你的用户是开发者或技术内部团队

画布渲染的组件和制作渲染的相同。没有镜像,没有漂移。

GrapesJS 很适合当

React只是你堆栈的一部分,而不是全部。

信号

  • React 只是你堆栈中的一部分
  • 你需要一个与框架无关的编辑器
  • 你需要HTML/CSS的视觉编辑
  • 你希望在不同应用环境中重复使用编辑器

编辑器 UI 可以是 React,而画布保持 HTML——这正是它便携的原因。

画布才是真正的区别。Craft.js 在编辑器中渲染你的 React 树;GrapesJS 编辑 HTML 文档,给你生成的 HTML 和 CSS。React 设计系统可以在 GrapesJS 中作为编辑器组件表示,但它只是表示,保持与生产同步是你需要提前规划的工作。

框架独立性

如果你需要的不仅仅是React怎么办?

GrapesJS 可以作为不同前端环境的编辑器基础,而 Craft.js 则专门围绕 React 设计。

GrapesJS

一台发动机,安装于多个环境

请仔细阅读。该引擎是一个 JavaScript 库,挂载到 DOM 元素上,这也是它能在上述任何前端环境中使用的原因。这并不意味着每个前端环境都有官方包装器:有官方的 React 封装器,Vue 和 Angular 集成是模式而非包。下面的每个框架页面展示了实际的集成代码。

SaaS

在你的SaaS中内置一个可视化编辑器?

编辑器只是众多表面中的一个,也是任何一个框架唯一对它有看法的。它周围的所有东西都归你所有。

  • 认证
  • 组织
  • 账单
  • 权限
  • 数据库
  • 可视化编辑器

GrapesJS

如果用Craft.js代替GrapesJS,这个图看起来也是一样的。这两个框架都不提供认证、组织、计费、权限或数据库,暗示相反的比较其实是在推销某种东西。

使用场景

具体团队是用它来构建的

同一编辑表面进入产品后会呈现六个形状。每个形状都有独立页面的详细介绍。

嵌入

把编辑器嵌入你的产品中

编辑器可以成为你应用的原生部分,而不是作为独立的托管服务。两个框架都支持这一点;区别在于你在发布前组装了多少表面。

你的申请

你的用户已经登录的产品

  • 你的路线和布局
  • 你的会话和权限
  • 你的导航和外壳
  • 你的设计代币

编辑表面

编辑器,装在里面

浏览插件
  • 画布与面板
  • 你的块集
  • 你的组成部分
  • 你添加的插件
  • 你拥有的

    应用壳

    • 认证
    • 路由
    • 多租户
    • 账单
  • 开源

    编辑引擎

    • 画布
    • 组成部分
    • 样式
    • Commands
  • 你拥有的

    数据层

    • 你的API
    • 你的数据库
    • 你的资产
    • 你的版本
没有第二个产品,没有第二次登录,也没有内容离开你的基础设施。

请求路径

  1. 你的仪表盘
  2. 可视化编辑器
  3. GrapesJS
  4. 你的API
  5. 你的数据库
编辑器会根据你的条件与你的API对话;没有任何东西通过供应商进行代理。
设计系统

围绕你的设计系统构建

合适的编辑器框架应该能让你围绕用户实际使用的组件构建编辑体验。这两个框架都能做到这一点;它们在组件的定义上有所不同。

从设计系统到画布

  1. 你的设计系统
  2. 编辑器组件
  3. 调色板中的方块
  4. 在画布上
在Craft.js中,最后两步崩溃——画布上的分量就是分量。在GrapesJS中,块包裹定义,画布渲染为HTML。
典型块集

用户实际放置的部分

区块集是产品决策,而非框架功能。这些是大多数团队最终最先发布的部分——受限、品牌化且安全,可以交给非技术用户。

  • Hero

    标题、支持文案和主要行动,布局锁定。

  • 定价

    规划栏目时,请基于您自己的数据,而非自由文本。

  • 功能特性

    一个可重复的网格,计数有界,图标来自你的集合。

  • 行动号召

    仅限品牌认可颜色选项的单一转换戒指。

  • 导航

    网站导航,用户可以填充,但不能重组。

  • 表单

    这些字段连接到你的终端,验证由你控制。

  • 用户评价

    引用和出处均取自记录,而非重新输入。

  • 产品卡

    一个绑定在真实产品上的商业地块,而不是产品的图片。

用户无法突破的约束比一张什么都可能的画布更有价值。

存储

把编辑器连接到你自己的后台

两个框架都是序列化状态并交给你。都不存储状态。GrapesJS 提供带有加载和存储回调功能的 Storage Manager;Craft.js 给你序列化的节点树,并保留对应用的传输。

持久化路径

  1. 编辑
  2. 存储层
  3. REST / GraphQL
  4. 你的API
  5. 你的数据库
只需在你自己的运输工具上,向你已经运行的数据库请求。

常见目的地

  • PostgreSQL
  • MySQL
  • MongoDB
  • REST
  • GraphQL
  • Headless CMS

你的应用拥有后端架构。这两个框架都不提供数据库、API、版本管理、发布或CDN,上面的列表是你已经运行的程序列表,不是任何项目都提供的功能。

电子邮件

邮件编辑呢?

电子邮件是最明显的两种框架不可互换的情况。GrapesJS 可以通过预设扩展用于电子邮件编辑工作流程,这些预设交换了块集和导出格式;Craft.js 没有对应的路径,因为它的输出是 React 树而非标记。

邮件路径

  1. GrapesJS
  2. 电子邮件组件
  3. MJML / HTML
  4. 你的电子邮件基础设施
同一个引擎,不同的区块集和不同的出口目标。
  • 通讯生成器
  • CRM邮件编辑器
  • 营销自动化模板
  • 事务性电子邮件模板
  • 面向客户的电子邮件编辑器

这些都不是自动的。邮件编辑器需要一个对表格安全的块集、导出步骤以及跨客户端测试——引擎消除的是画布问题,而不是邮件问题。

白标

让编辑成为你品牌的一部分

这两个框架都允许你从相反方向拥有表面:用Craft.js你写它,所以默认属于你;用GrapesJS你替换框架已经提供的接口。三个层级,按团队通常达到的顺序排列。

  • 01

    表面

    用户在第一屏幕上看到的部分。

    • 颜色、类型和标记间距
    • 编辑器界面中的标志和产品名称
    • 自定义面板和工具栏
    • 你自己套装中的图标
  • 02

    词汇

    你的产品已经用来表达这些想法的词汇。

    • 重命名块、扇区和命令
    • 将界面转化为你的所在地
    • 用领域术语替换通用标签
    • 隐藏用户不需要的面板
  • 03

    能力

    每个用户到底被允许做什么。

    • 每个租户块集
    • 锁定区段和只读区域
    • 审批与审核步骤
    • 角色与审计——在您的应用中实现

最后一层是没有任何编辑器框架提供的。角色、审批和审计是本次比较双方的应用功能。

授权

授权

已根据每个包裹当前的注册记录和许可文件在下一个日期进行核对,因为本网站过去发布过不一致的许可信息。

当前两个核心、React 包装和市场产品的许可
包装许可资料来源
grapesjsBSD-3-Clause许可
@grapesjs/reactMIT许可
@craftjs/coreMIT许可
GJS.Market按产品商业术语市场

市场产品由作者单独授权;条款会在结账前显示在每个产品页面上。 GrapesJS 核心及其 React 封装采用不同的许可证——核心不是 MIT。Craft.js 将所有包统一发布在同一许可下。

这是每个包裹发布的许可证声明,不是法律建议。阅读许可证文件,并与你自己的分发模式进行核对。 许可证重读 2026-09-03.

费用

比较总工程成本

本页没有具体的工时数字。“四十小时与三百二十小时”完全取决于你的团队、你的设计和完成的定义,任何引用这些内容的页面都是猜测。接下来是双方的工作内容,你可以根据自己的速度进行定价。

Craft.js

在你拥有用户可用的编辑器之前,可能先进行工程工作。

编辑器界面
工具栏、侧面板、选择功能以及支撑它们的布局。
块形调色板
一个调色板UI加上决定哪些内容可以丢弃的元数据。
样式控制
字体、间距、色彩和版面控制,以及他们写作的道具。
资产管理
上传、浏览、选择并替换,连接到你的存储。
响应式控制
画布中的断点切换和模型中的每个断点值。
持久性
序列化、传输、版本和恢复——树是给你的,流水线不是。
模板与发布
用户的起点,以及你产品中“发布”的含义。

GrapesJS

更多的编辑器基础设施已经存在,这减少了从零开始实现的编辑器专用基础设施。但这并不会将其归零。

积分
把编辑器挂载到你的应用、框架里,以及你的构建中。
你的块集
将你的设计系统变成模块和组件——这才是真正的工作。
存储布线
把Storage Manager指向你的API,处理故障和冲突。
面板定制
更换或重新设计与产品不匹配的面板。
应用特性
角色、审批、版本管理、发布和租户——双方都是你的。

两列都指向同一个地方:一个用户可以使用的编辑器,而你仍然需要在一个需要开发的应用程序中。区别在于你的团队先写哪一行。

市场

你需要建造什么?

从核心编辑器开始,添加产品真正需要的功能。以下每条商品都是真实且当前发布的产品——价格在建立本页面时从目录中实时读取。

白标建商

对于白标编辑器来说,起点是一个替换整个shell的预设,而不是添加插件——上面三个演示正是这些,每个都是一个产品。

按类别浏览

目录中有两个真正由AI驱动的列表,而不是完整的AI分类。它们在这里命名,而不是单独设立一个板块:AI分类中心背后没有发布任何内容,所以让读者去那里会浪费点击。

从核心编辑器开始,添加你产品真正需要的功能。

目录已核实 2026-09-03. grapesjs-gpt-plugin · grapesjs-image-ai-thumbai

实现

咨询GrapesJS专家

如果上面的比较落在GrapesJS和你面前的模块集上,这就是我们的做法。

  • 将编辑器安装到现有应用程序中
  • 将设计系统转化为编辑器组件和模块
  • 将Storage Manager接线到API和数据库
  • 为现有编辑器添加电子邮件创作路径
  • 白标外壳、面板和词汇
  • 移植基于另一个框架的编辑器
判决

你应该选择哪个框架?

十四个需求,每个要求指向的框架。其中三个指向两个,因为对于这些需求,任一框架都可以,假装不行会让这张表的其他部分变得不那么可信。

需求更合身
React 首编辑器Craft.js
深度 React 组件编辑Craft.js
打造你自己的编辑器用户体验Craft.js
最大React原生控制Craft.js
编辑器仅供开发者使用Craft.js
框架无关编辑器GrapesJS
内置可视化编辑器基础设施GrapesJS
HTML/CSS 视觉编辑GrapesJS
SaaS 页面构建器GrapesJS
电子邮件和页面编辑器合一GrapesJS
现有编辑器生态系统GrapesJS
你自己存储的JSON项目数据两者皆可
无供应商自托管两者皆可
开箱即用复原重做两者皆可

你的产品处于什么位置?

  • 编辑器必须输出一个实时的 React 组件树

    Craft.js

    这就是Craft.js存在的理由。没有任何GrapesJS插件能改变它的画布是HTML的事实。

  • 你要设计每一个面板并自己控制

    Craft.js

    Craft.js期望你渲染表面,所以不需要先更换任何东西。

  • 编辑器仅供你自己团队的开发者使用

    Craft.js

    专门打造的React编辑器比你已经缩小范围的通用编辑器维护成本更低。

  • 编辑器必须在React之外运行,现在或以后

    GrapesJS

    GrapesJS 安装在 DOM 元件上,因此任何前端环境都能访问。

  • 这学期你需要一个可用的编辑器

    GrapesJS

    画布、块、样式、图层和资源已经存在并且可以协同工作。

  • 你需要同时进行页面和邮件创作

    GrapesJS

    一个引擎通过电子邮件预设覆盖了这两者;React 树不会变成电子邮件标记。

问题

GrapesJS 和 Craft.js,已回复

GrapesJS和Craft.js有什么区别?

Craft.js 是一个用于构建自定义页面和编辑器体验的 React 框架:它提供可序列化的节点树、拖放功能、撤销/重做历史和 React APIs,并且你用自己的 React 组件渲染编辑器界面。GrapesJS 是一个视觉编辑器框架,它已经构建了更多编辑器——画布、组件模型、块调色板、可视化样式管理器、图层树、资产管理器、命令注册表和存储层。实际问题是,你是想从底层原语构建高度定制的 React 编辑器,还是从更完整的可视化编辑器基础开始。

GrapesJS是Craft.js的替代品吗?

对大多数项目来说,是的——两者都是开源框架,用来将编辑器集成到你拥有的软件中,且任何一个都可以作为页面构建器的基础。不过它们并不是彼此的直接替代:画布模型不同,因此在它们之间切换意味着重新实现组件,而不是交换依赖。如果你专门在评估替换或迁移,专门的Craft.js替代页面会覆盖这条路径。

Craft.js 只有 React 吗?

是的。Craft.js 基于 React 构建,并将 React 作为对等依赖,目前覆盖 16.8 到 19 的范围。没有 Vue、Angular 或原生 JavaScript 构建,其组件模型始终假设 React。这是设计决策而非遗漏——原生于 React 是让你的生产组件成为画布上的组件。

GrapesJS 框架是独立的吗?

该引擎是一个 JavaScript 库,挂载到 DOM 元素上,因此它可以运行在 React、Vue、Angular、Next.js 或纯 JavaScript 应用中。这并不意味着每个都有官方封装器:有官方的 React 封装包,而 Vue 和 Angular 集成则是文档化的模式,而非维护包。本网站的每个框架页面展示了每个环境的实际挂载和拆解代码。

哪种更适合用来做React页面构建器?

这取决于构建者生成的内容。如果输出是React组件树,用户直接编辑自己的组件,那么Craft.js更合适。如果输出是HTML和需要在React之外渲染的CSS——发布页面、导出模板、邮件——那么GrapesJS更合适,编辑器界面仍用React编写。两者都可行;决定的是画布模型,而非界面。

哪种更适合用来做SaaS页面构建器?

通常是 GrapesJS,出于排程原因而非技术原因。SaaS 构建器面向客户,客户期望第一天就有样式控制、响应式编辑、资产选择器和图层树,而这些功能在 GrapesJS 中已经存在。Craft.js 完全可以为 SaaS 构建器提供动力——只是意味着在第一个客户看到之前就已经构建好了那个表面。编辑器周围的一切,包括租户、角色和计费,都是你的应用的工作。

GrapesJS 包含可视化编辑器吗?

是的。安装后,你会有一个可用的编辑器:一个带拖放功能的画布、一个方块调色板、一个可视化样式管理器、一个图层树、一个资产管理器、设备宽度、一个撤销管理器和一个存储层,所有这些都连接在一起。你仍然需要配置它、重新设计面板,并在发货前提供自己的模块,但你编辑的是编辑器,而不是组装一个编辑器。

Craft.js 包含完整的视觉编辑器吗?

不会,而且它并没有打算这么做。它的文档描述了如何模块化页面编辑器的构建模块,而不是直接出货:你会得到节点树、拖放行为、历史和序列化,还有官方的图层面板包,然后在React上构建编辑界面。对于想要接口属于自己的团队来说,这就是功能。

GrapesJS能和React一起使用吗?

是的。有一个官方的React包装包,可以挂载编辑器并将面板作为React组件展示,所以编辑器界面可以成为React树的一部分。重要的细节是画布本身渲染的是HTML,而不是React组件——你的设计系统在编辑器中以组件表单表示,保持与生产同步是值得规划的工作。

GrapesJS能和Vue、Angular一起使用吗?

是的,但和任何 DOM 挂载库一样的注意事项:组件挂载后初始化,拆除时销毁,避免实例进入框架的反应系统。没有官方的 Vue 或 Angular 包,所以这些是集成模式而非依赖关系。本站的 Vue 和 Angular 页面介绍了各自的生命周期代码。

我能用GrapesJS搭建一个邮件编辑器吗?

是的,通过交换块集和导出目标。电子邮件预设用一个能生成邮件客户端接受的标记模型替代画布组件模型,包括MJML路径。这不是自动的——你仍然需要一个对表安全的块集、导出步骤和客户端测试——但引擎消除了画布问题。Craft.js没有对应路径,因为它的输出是React树而不是标记。

我可以自架GrapesJS吗?

是的。这是一个开源库,你可以从 npm 安装,并通过你自己的应用程序提供;没有账户,没有托管服务,也没有电话归属。Craft.js 也是如此。自托管是这两个框架在两个框架上没有区别的几个方面之一,这一点在对比页面上值得直白说明。

我可以把GrapesJS连接到我自己的数据库吗?

是的。Storage Manager 会暴露加载和存储回调,所以你决定终端、有效载荷形状和传输——REST、GraphQL 或你应用已经说的任何其他代码。项目数据是 JSON,所以它可以存在于 PostgreSQL、MySQL、MongoDB 或无头 CMS 中。Craft.js 以同样的方式序列化节点树,传输完全由你负责。

我能做一个白标编辑器吗?

是的,这两个框架是从相反方向进入的。Craft.js 默认是你写的表面。而 GrapesJS 则替换它提供的界面:重新设计面板,重命名块和扇区,转换界面,隐藏用户不需要的内容。能力层面的品牌塑造——每个租户块集、锁定区域、审批步骤——是双方的应用工作。

我可以创建自定义组件吗?

是的,两者都有,而且这是两者最接近的部分。在Craft.js中,自定义组件是带有编辑器设置注释的React组件。在GrapesJS中,自定义组件是与组件模型注册的类型加上放置该组件的块。两者都可以限制用户可以更改的内容;区别在于画布上的物体是React元素还是编辑器管理的DOM元素。

GrapesJS能提供CMS吗?

不会。它提供编辑界面,并交付序列化的项目数据。内容模型、工作流程、版本管理、调度、角色和交付都是你的应用程序或 CMS 的工作。如果你已经运行无头 CMS,编辑器可以作为编辑层放在上面——这是常见的配置,但这是你自己构建的集成,而不是启用的功能。Craft.js 也是一样。

GrapesJS 提供托管服务吗?

不。这两个框架都不托管任何东西。两种架构都没有供应商基础设施:编辑器运行在你的页面上,数据会送到你的API,发布则是应用决定的含义。如果你想要托管的视觉内容平台而不是框架,那是不同的产品类别和比较。

构建一个基于GrapesJS的编辑器需要多少钱?

这个框架免费——它是开源的,没有许可费,也没有按座位计费,Craft.js 也是如此。真正的成本是工程:将设计系统转化为模块和组件,布线存储,定制面板,并围绕编辑器构建应用功能。本页故意没有标注小时或美元数字,因为这完全取决于你的团队和你对完成的定义。市场插件会减少具体部分的工作,并按产品定价。
下一步

构建你产品所需的可视化编辑器

Craft.js 为 React 团队提供了构建自定义编辑器的灵活基础。GrapesJS 为团队提供了更广泛的可视化编辑器基础,可以集成、定制和扩展以适应生产应用。

从这里开始

从GrapesJS开始

告诉我们编辑器需要做什么,它存在哪个应用程序中,并获得一个具体的集成方案。

从GrapesJS开始
延伸

探索 GJS.Market 插件

预设、块库、存储适配器和电子邮件组件——这些都是大多数团队会先写出来的部分。

探索插件
寻求帮助

咨询GrapesJS专家

设计系统变成了模块,存储接到了你的API上,面板重建以匹配你的产品。

咨询专家

选择与你的架构相匹配的编辑器基础——然后围绕它构建产品。