所见即所得页面构建器

构建所见即所得页面编辑器,就用GrapesJS

为用户提供一个可视化编辑器,创建响应式页面,内容可编辑、组件可重用和样式自定义——无需手动编写HTML和CSS。

开源自托管可扩展性可定制

26k+

GitHub 星

1.4M+

每月下载量

100+

GJS.Market 上的插件

BSD-3-Clause

核心许可

试试看吧

详见所见即所得编辑的实际操作

点击下面的任意元素,原地重新输入,然后更改外观。这里没有预览——画布就是页面,样式面板编辑的是你正在阅读的相同元素。

your-app.com/editor

点击一个元素,然后输入来编辑

现在处于私测阶段

本页上的每一个字都可以编辑

选择此段并开始输入。然后从右侧面板更改其大小、颜色、对齐和间距——就像你的用户操作一样。

开始

样式

眉毛

颜色

路线排列

真正的编辑

这是GrapesJS,不是模型

上面的游乐场是我们的。这些是真正的——完整的GrapesJS编辑器,只有在你要求时才加载,这样页面在那之前就能保持快速。

在新标签页中打开

原版编辑器:画布、块、图层树、样式管理器和设备切换器,没有添加任何内容。

grapesjs.com/demo.html免费

从演示版自己的网站加载一个iframe。

概念

所见即所得是什么意思?

所见即所得(WYSIWYG)代表“所见即所得”(What You See Is What You Get)。所见即所得编辑器允许用户使用内容的可视化表示,而不必直接编辑原始HTML和CSS。他们工作时看到的页面就是他们将发布的页面。

传统代码编辑器

  1. 编写HTML

    结构,标记

  2. 写入CSS

    外表,别处

  3. 保存并构建

    还是没什么好看的

  4. 打开预览

    初见结果

最终的结果是最终的产物,只有开发者才能达到。

所见即所得页面构建器

  1. 打开视觉画布

    页面已经在那里了

  2. 编辑已到位

    在文本所在位置输入

  3. 视觉样式

    改变它,然后看它改变

  4. 查看结果

    你一直都看到了

结果存在于每一步,任何人都能达到目标。

用户可以在构建页面时看到它。

区别

不仅仅是一个富文本编辑器

富文本编辑器是段落的合适工具。它负责文本格式化、标题和列表管理,并管理内联内容。页面构建器则更上一层:涵盖部分、栏、组件、图片、按钮、样式和响应式,这些内容围绕该文本构成页面。

能力富文本编辑器所见即所得页面构建器
文本编辑是的是的
页面布局限量版是的
拖拽限量版是的
组成部分限量版是的
可重复使用的块是的
响应式布局限量版是的
自定义组件限量版是的
视觉样式限量版是的

GrapesJS 结合了可视化页面编辑和可扩展组件架构——而且它仍然包含一个富文本编辑器,因为原地编辑段落是所见即所得的一半。如果你的产品已经使用 CKEditor、TinyMCE、Froala 或 Quill,你可以保留它们:每个版本的集成都在 GJS.Market 上。

能力

可视化页面编辑所需的一切

视觉编辑体验的构建模块,都是GrapesJS的核心,而不是你自己组装的东西。

视觉画布

用户直接在可视化环境中编辑页面,处理渲染后的页面而非描述。

内联编辑

内容在页面上的位置被更改,因此写作和看到结果之间没有间隔。

拖拽

方块和组件通过视觉移动,投放目标显示元素落点。

造型

字体、间距、颜色和布局通过面板而非样式表控制。

响应式剪辑

页面可根据编辑器内部视口大小调整,且不离开画布。

可重复使用组件

页面元素可以定义一次并重复使用,因此一个地方的变更可以传播到所有使用的地方。

资产

图片和其他媒体通过资产管理器管理,你可以指向自己的存储。

撤销与重做

完整的命令历史让用户可以放心尝试布局,无需担心丢失工作。

工作流程

从空白画布到已出版的页面

  1. 1
    01

    从一页开始

    用户打开一个空白画布或模板,已经渲染成它将要成为的页面。

  2. 2
    02

    添加组件

    分区、列、文本、图片和按钮会从块面板中直接投放到画布上。

  3. 3
    03

    编辑内容

    文本在原地重新输入,图像被交换,直接在元素上而非表单中交换。

  4. 4
    04

    自定义造型

    排版、颜色、间距和布局通过样式管理器进行修改并实时应用。

  5. 5
    05

    调整响应式布局

    设备切换器缩小画布范围,使同一页可以根据断点调整。

  6. 6
    06

    预览

    Editor Chrome 是隐藏的,用户看到页面时完全像访客一样。

  7. 7
    07

    保存

    项目通过存储管理器写入你决定存放的位置。

  8. 8
    08

    发布

    你的应用程序会把生成的HTML和CSS应用到你自己的流水线中。

使用场景

你能建造什么?

同一个视觉编辑引擎隐藏在截然不同的产品之下。这些是它最常呈现的形态。

受众

谁需要所见即所得页面构建器?

视觉编辑通常是由一个团队提出请求,另一个团队负责制作。这些人是对话双方的成员。

开发者

建立在可扩展的编辑引擎之上,而不是从零开始写选择、拖拽和撤销。

SaaS团队

在你自己的路线图和应用中,将可视化页面创建作为产品功能。

产品团队

用人们真正喜欢使用的编辑体验取代表单和预览内容流。

市场营销团队

让非技术用户直观地控制页面,这样发布变更就不需要发布版本。

CMS开发者

在现有内容系统中添加视觉编辑,而无需替换其底层的内容模型。

代理机构

构建可重复使用的视觉编辑流程,并为客户提供一个以你品牌为标志的版本。

自定义组件

让编辑理解你的产品

编辑器开箱即用,已经知道文本、图片、按钮和部分。让它感觉原生的是它如何教它应用已有的对象。

  1. 01
  2. 02
  3. 03
  4. 用与你应用的对象、内容和工作流程相匹配的组件扩展编辑器。

01

标准组件

文本、图片、按钮、版块——每个页面都需要的通用构建模块,立即可用。

02

配置组件

同样的原语,加上你的约束:哪些可以拖拽、嵌套、删除或编辑,哪些特性会出现在设置面板里。

03

你的组成部分

你自己定义的类型——产品卡、定价表、预订小部件、地图、表单、自定义行动号召——每种类型都有你自己的数据和代码。

第三级的示例是你为自己产品构建的组件,而不是可下载的插件。GrapesJS 给你组件 API;组件知道什么由你决定。

响应式

可视化地构建响应式页面

在可视化编辑器中预览和调整视口大小的布局,而不是在手机上发布和检查。

桌面全宽
平板768px
手机375px

每个视窗控制

  • 设备切换器
  • 断点样式
  • 可见性
  • 间距
  • 字体比例

设备是可配置的:上述三个是默认的,你可以定义设计系统实际使用的断点。从该断点开始,设置在更窄的设备上的样式。

建筑

所见即所得页面构建器如何融入你的产品

GrapesJS 提供了可视化编辑层。它周围的所有内容——用户、权限、数据、存储和发布——都保留在你已经运行的应用中。

你的申请

  • 用户与认证
  • 你的用户界面
  • 权限

GrapesJS 编辑器

  • 内容
  • 布局
  • 造型
  • 方块
  • 组成部分
  • 插件
浏览插件

你的基础设施

  • 你的API
  • 你的数据库
  • 你的出版
编辑器会把你的应用交给一个项目:页面的结构、样式和资产。接下来发生的事情——文件存放在哪里,谁可以编辑,如何上线——完全取决于你。

如果问题具体是如何在现有产品中安装编辑器,那该攻略有独立页面。 可嵌入页面构建器

你的数据

将你的内容保留在自己的基础设施中

围绕现有的应用架构构建编辑器,而不是把内容迁移到另一个托管平台上。

页面的去向

  1. 所见即所得编辑器
  2. 项目数据
  3. 你的API
  4. 你的数据库
  5. 你的出版工作流程
远程存储JS
const editor = grapesjs.init({
  container: '#editor',

  // Each page is a row in your database, behind your own auth.
  storageManager: {
    type: 'remote',
    autosave: true,
    options: {
      remote: {
        urlStore: `/api/pages/${pageId}`,
        urlLoad: `/api/pages/${pageId}`,
        fetchOptions: { credentials: 'include' },
      },
    },
  },
});

// Publishing stays on your side — your domains, your CDN, your workflow.
async function publish() {
  await fetch(`/api/pages/${pageId}/publish`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ html: editor.getHtml(), css: editor.getCss() }),
  });
}

GJS.Market 卖插件;它不托管你的编辑器,不存储你的页面,也不运行你的数据库。存储管理器指向你给它的端点,背后是你自己的认证。

组装与购买

从零开始构建一个所见即所得编辑器?

视觉编辑器看起来像是一个功能,实际上是十几个子系统,每个子系统都必须工作,才能感觉完成。

所见即所得编辑器的组成

  • 画布
  • 选择
  • 内联编辑
  • 拖拽
  • 组成部分
  • 方块
  • 造型
  • 响应式控制
  • 资产
  • 撤销与重做
  • 存储
  • 出口
  • 出版
  • 维护

从零开始

所有这些

  • 你实现了上面所有的子系统
  • 你拥有画布中所有的浏览器漏洞
  • 你要维护它,直到产品能存活为止
  • 这一切都不是你最初想建立的东西

与GrapesJS

从这里开始

  • 视觉画布、组件与块
  • 样式管理器、资产与页面
  • 存储API与导出
  • 插件和自定义扩展

这是范围的比较,而非进度——编辑制作所需时间取决于你的团队以及你实际需要多少。打造你的产品,而不是从零开始找另一个编辑。

模板

不要从一张白纸开始

一张空白画布是最难交给非技术用户的东西。起始布局给他们一个可以修改的东西,而不是创造的东西。

用户要求的布局

  • SaaS
  • 创业
  • 代理机构
  • 商业
  • 作品集
  • 着陆页
  • 电子商务

这些是建造者用户要求的布局,而不是产品列表。GJS.Market上预设的起始点是预设。

生态系统

扩展你的所见即所得页面构建器

以下内容都是GJS.Market上的真实商品列表,包含其真实名称和价格。每个组别还关联其类别,因此这里总有更多内容。

书库

打造你所需的所见即所得体验

四个起始组合,每个针对不同类型的产品。每个插件都是真实的列表,并标注其实时价格。

价格直接来自目录,且可能发生变化;产品页面具有权威性。

出版

从视觉编辑到制作

  1. 1
    01

    编辑

    用户在画布上工作;编辑器将页面作为结构化项目数据保存。

  2. 2
    02

    保存

    存储管理器会将这些数据发送到你的终端,无论是自动保存还是按需保存。

  3. 3
    03

    预览

    编辑器的Chrome是隐藏的,或者页面是通过你自己的预览路径渲染的。

  4. 4
    04

    发布

    你的应用程序导出HTML和CSS,并将其导入交付流程。

  5. 5
    05

    实时页面

    页面是通过你的基础设施、你的域名、根据缓存规则进行的。

将编辑器连接到你自己的出版工作流程和基础设施。GrapesJS 负责制作页面;决定“上线”是什么意思是你的应用程序的工作。

快速入门

开始构建一个所见即所得编辑器

核心是一个 npm 包和一个容器元素。之后的一切都决定了用户应该看到多少编辑器内容。

npm install grapesjs
editor.jsJS
import grapesjs from 'grapesjs';
import 'grapesjs/dist/css/grapes.min.css';

// The visual canvas. Everything the user sees here is the page itself,
// not a preview of it.
const editor = grapesjs.init({
  container: '#editor',

  // The panels that make the editing visual rather than textual.
  styleManager: { appendTo: '#styles' },
  deviceManager: {
    devices: [
      { id: 'desktop', name: 'Desktop', width: '' },
      { id: 'tablet', name: 'Tablet', width: '768px' },
      { id: 'mobile', name: 'Mobile', width: '375px' },
    ],
  },
});

内联编辑和一个了解你规则的组件——这两件作品是将画布变成所见即所得编辑器的部分:

components.jsJS
// "What you see is what you get" starts with editing text where it
// already sits. GrapesJS ships an inline rich-text editor, and you can
// replace it with whichever one your product already uses.
editor.setCustomRte({
  enable(el, rte) {
    el.contentEditable = true;
    return rte;
  },
  disable(el) {
    el.contentEditable = false;
  },
});

// A component decides what the user is allowed to change visually.
editor.DomComponents.addType('quote', {
  model: {
    defaults: {
      // Editable in place, but the frame around it stays yours.
      editable: true,
      droppable: false,
      traits: ['author', 'source'],
    },
  },
});
  1. 添加产品所需的组件
  2. 自定义样式和编辑器界面
  3. 根据你自己的API配置存储
  4. 将出版与你的管道连接起来
  5. 用插件扩展,这样可以节省时间

这就是整个表面:初始化、扩展、存储、发布。文档对每个管理器都有深入的介绍。

框架

在你的堆栈中使用GrapesJS

核心内容与框架无关;本页介绍如何在特定框架内安装。

开源

基于开源构建

从开源的视觉编辑基础开始,并围绕你的产品需求进行扩展。

BSD-3-Clause 授权

GrapesJS 核心以 BSD-3-Clause 许可证发布。官方 React 封装程序是 MIT。

无需平台费用

编辑器本身无需按座位或页面付费——$0对库收取费用,无论你为插件付费多少。

默认自托管

编辑器运行在你的应用程序中。没有服务可依赖,也没有外部能关闭的功能。

星级和下载数据最后一次是在2026-09-03上通过GitHub和npm API验证的。

相关

相关解决方案

相邻页面,针对本书仅涉及的问题。

常见问题

所见即所得页面构建器问题

开始

构建你自己的所见即所得页面构建器

从GrapesJS开始,定制编辑体验,添加你的产品所需的插件。

自己动手

开始建设

安装核心,挂载到容器上,现在就有一个可用的可视化编辑器。

开始建设
延长它

浏览插件

内联编辑器、样式控制、块、资源、存储和模板——真实的房源,真实的价格。

浏览插件
为你完成

需要定制开发吗?

告诉我们编辑在你的产品中需要做什么,我们将与你一起规划构建。

跟我们聊聊