GrapesJS 教程 — 入门指南

从安装到自定义区块、插件与存储

实战教程

一小时内构建可用于生产环境的 GrapesJS 编辑器

本指南聚焦团队真正需要的工作流:快速初始化、交付可复用的区块、持久化项目数据,并避免常见的实现误区。

搭建用时

5-10 分钟

核心步骤

4 个步骤

代码示例

即贴即用

第 1 步:安装与初始化

安装 GrapesJS 并在容器中渲染编辑器。首次运行刻意保持精简,随后再逐步叠加自定义模块。

  • 1. 添加 GrapesJS 依赖包并引入 CSS。
  • 2. 创建专用的编辑器容器。
  • 3. 在后端接口就绪前先禁用存储。
init.ts
import grapesjs from 'grapesjs';
import 'grapesjs/dist/css/grapes.min.css';

const editor = grapesjs.init({
  container: '#gjs',
  height: '100vh',
  width: 'auto',
  storageManager: false,
  plugins: [],
});

第 2 步:添加易用的自定义区块

区块是非技术编辑用户的主要交互界面。使用清晰的标签,并让分类贴合用户对页面板块的认知方式。

主视觉功能特性定价用户评价常见问题行动号召
blocks.ts
editor.BlockManager.add('hero-section', {
  label: 'Hero Section',
  category: 'Sections',
  content: `
    <section style="padding: 80px 20px; text-align: center;">
      <h1>Your Headline Here</h1>
      <p>Add your subheadline and CTA below.</p>
      <a href="#" style="background: #4f46e5; color: white; padding: 12px 24px; border-radius: 6px; text-decoration: none;">
        Get Started
      </a>
    </section>
  `,
  attributes: { class: 'fa fa-columns' },
});

第 3 步:配置可靠的存储

在本地编辑功能正常后,从仅浏览器存储迁移到远程存储。这将解锁协作与多设备工作流。

  • 1. 为受保护的路由使用鉴权请求头。
  • 2. 为保存的项目数据格式设置版本号。
  • 3. 记录保存/加载失败日志,便于更快排查问题。
storage.ts
const editor = grapesjs.init({
  container: '#gjs',
  storageManager: {
    type: 'remote',
    storeComponents: true,
    storeStyles: true,
    storeHtml: true,
    storeCss: true,
    urlLoad: '/api/pages/load',
    urlStore: '/api/pages/save',
    headers: { Authorization: 'Bearer YOUR_TOKEN' },
  },
});

4 步学习路线图

步骤 01

初始化编辑器

用最小化配置搭建 GrapesJS,并确保画布在应用框架内正确渲染。

步骤 02

定义可复用区块

创建一套聚焦的初始区块集:主视觉、功能特性、定价、行动号召和页脚。为非技术用户保持标签清晰。

步骤 03

添加项目持久化

将项目 JSON 远程保存,让用户能跨会话、跨浏览器、跨设备持续编辑。

步骤 04

为生产环境加固

限制不安全的组件,跟踪编辑器事件,并在移动端和桌面端断点上测试导出的还原度。

需要避免的常见错误

只保存 HTML/CSS

尽量使用项目数据(JSON)。它能保留编辑器结构,避免丢失组件元数据。

没有设计令牌

尽早定义排版、间距和颜色令牌,让团队更快地构建一致的页面。

初始区块过多

从一套精简、有主见的区块集起步。区块列表过长会增加认知负担并降低采用率。

忽视事件与分析

跟踪区块使用情况、发布操作和失败记录。事件数据有助于优先推进正确的产品改进。

GrapesJS 核心概念

区块管理器(Block Manager)

管理可拖拽的区块。通过 BlockManager.add() 或 init 配置中的 blocks 选项添加区块。

组件管理器(Component Manager)

管理组件类型。使用 ComponentManager.addType() 定义自定义组件。

样式管理器(Style Manager)

可视化 CSS 编辑面板。配置分组和属性,以控制编辑用户可更改的样式。

存储管理器(Storage Manager)

负责保存和加载编辑器内容。支持本地、远程和自定义存储后端。

画布(Canvas)

用于拖放组件的 iframe 编辑区域,与你的应用样式完全隔离。

插件 API(Plugin API)

插件是接收编辑器实例的函数,可以修改任意编辑器管理器。

GrapesJS 教程常见问题

继续学习

用生产级插件扩展 GrapesJS

借助现成的组件、存储、表单和高级编辑器控件插件,更快推进项目。

浏览插件