← 返回文档中心

CMS 工作原理演示

用可交互的界面模拟,直观理解传统 CMS 和 Headless CMS 的区别

1 传统 CMS(WordPress)

先看传统方案怎么工作。以 WordPress 为例,运营在后台编辑内容,WordPress 直接生成网页。

运营看到的:WordPress 后台

https://admin.tp-link.com/wp-admin/post.php?id=142
内容
仪表盘
产品
博客文章
页面
外观
主题
菜单
设置
常规
插件

编辑产品 已发布

B I U 🔗 📷 H1 H2
Deco X50 采用最新的 WiFi 6 技术,提供高达 AX3000 的速度,覆盖面积可达 5000 平方英尺。三只装套装确保家中每个角落都能获得稳定、快速的网络连接。
📷 点击上传或拖拽图片到此处

WordPress 内部发生了什么

1

运营点击"更新"

内容保存到 WordPress 的 MySQL 数据库

2

用户访问 tp-link.com/products/deco-x50

请求到达 WordPress 服务器

3

WordPress 从数据库取出内容

产品名称、描述、价格、图片路径……

4

WordPress 用 PHP 模板把内容"套"进 HTML

模板决定了页面的布局和样式——这一步内容和展示绑定了

5

返回完整的 HTML 网页给浏览器

浏览器直接显示,结束

关键问题

第 4 步就是传统 CMS 的瓶颈——内容和展示在服务器上绑死了。WordPress 的 PHP 模板同时决定了"显示什么数据"和"数据长什么样"。

如果你想:用 React 重写前端?不行,WordPress 只能输出它自己模板生成的 HTML。同一份产品数据在 App 里展示?不行,WordPress 只会生成网页。换一套设计?必须改 PHP 模板,而不是改 React 组件。

2 Headless CMS(Contentful / Sanity)

现在看 Headless CMS。运营的体验几乎一样——还是在后台填表单。但后面发生的事完全不同。

运营看到的:Contentful 后台

https://app.contentful.com/spaces/tp-link/entries/deco-x50
Content
Product
Blog Post
Banner
FAQ
Media
Assets
Content Model
模型定义

Product Published

📷 deco-x50-hero.jpg (2400×1600)
Last published: 2 hours ago by Kevin
看起来和 WordPress 差不多?

对运营来说,体验确实很像——都是在后台填表单、上传图片、点发布。关键区别不在这个界面,而在点了"Publish"之后发生的事。

点击 Publish 后发生了什么

1

运营点击 "Publish Changes"

内容保存到 Contentful 的云数据库

2

Contentful 通过 API 暴露这份数据

注意:不生成任何网页。只是把结构化数据准备好,等别人来取。

到这里 CMS 的工作就结束了。它不管数据最终会变成什么样的页面。接下来看谁来取数据、怎么用。

API 返回的数据长什么样

任何人(网站、App、邮件系统)都可以调用这个 API:

GET https://cdn.contentful.com/spaces/tp-link/entries?content_type=product&fields.slug=deco-x50

返回纯 JSON 数据——没有任何 HTML、没有任何样式,只有原始数据

{
  "name": "Deco X50",
  "slug": "deco-x50",
  "tagline": "全屋覆盖 Mesh WiFi 系统",
  "price": 199.99,
  "currency": "USD",
  "heroImage": {
    "url": "https://images.ctfassets.net/xxx/deco-x50-hero.jpg",
    "width": 2400,
    "height": 1600
  },
  "description": "Deco X50 采用最新的 WiFi 6 技术...",
  "specs": {
    "wifi": "WiFi 6 (802.11ax)",
    "speed": "AX3000",
    "coverage": "5000 sq ft"
  },
  "seo": {
    "title": "Deco X50 | Whole Home Mesh WiFi",
    "description": "Cover your entire home with fast, reliable WiFi 6..."
  },
  "status": "published"
}
这就是"Headless"的本质

传统 CMS 返回的是完整的 HTML 网页(内容 + 样式 + 布局全绑在一起)。Headless CMS 返回的是纯数据(JSON)——只有文字、数字、图片链接,没有任何视觉信息。就像餐厅只提供食材,不负责做菜——你拿到食材后,想做中餐、西餐、日料,随你。

前端(Next.js)怎么用这份数据

3

用户访问 tp-link.com/products/deco-x50

请求到达 Next.js 服务器(不是 CMS 服务器)

4

Next.js 调用 Contentful API,拿到 JSON 数据

就是上面那份 JSON——纯原材料

5

Next.js 把数据灌进 React 组件(模具)

工程师提前写好的组件决定了布局、字号、颜色、动画——这些和 CMS 无关

6

输出完整的 HTML 网页,返回给浏览器

用户看到精美的产品页——但 CMS 对页面的视觉没有任何影响

3 一份数据,多种展示

Headless CMS 最大的价值:运营在 CMS 里只录入一次,多个渠道各自从 API 取数据、各自决定怎么展示。

官网产品页(Next.js)
产品大图

Deco X50

全屋覆盖 Mesh WiFi 系统

★★★★☆ 4.2

$199.99
加入购物车
手机 App(React Native)
产品图

Deco X50

全屋覆盖 Mesh WiFi

$199.99

加入购物车
营销邮件(Klaviyo)
三个渠道用的是同一份 CMS 数据

运营在 Contentful 里改了产品名称或价格,三个渠道自动同步更新——因为它们都是从同一个 API 取数据。

如果用 WordPress,你需要在 WordPress 里改一次网站的,再到 App 的后台改一次,再到邮件模板里改一次。改三次,还容易不一致。

4 完整对比:同一个操作,两种架构

运营把 Deco X50 的价格从 $249.99 改成 $199.99。看两种 CMS 分别发生了什么:

传统 CMS(WordPress)

① 运营在 WordPress 后台改价格

② WordPress 重新生成 HTML 页面

PHP 模板 + 新价格 → 新 HTML

③ 网站更新了

④ App 呢?不会更新

WordPress 只生成网页,App 有自己的数据源,运营要去 App 后台再改一次

⑤ 邮件模板呢?也不会更新

运营要去 Mailchimp 再改一次

改 1 次价格 = 改 3 个地方

Headless CMS(Contentful)

① 运营在 Contentful 后台改价格

② API 返回的数据自动更新

JSON 里的 price 字段从 249.99 变成 199.99

③ 官网下次请求 API 时自动拿到新价格

Next.js ISR 模式:几分钟内自动刷新

④ App 下次请求 API 时也自动拿到新价格

所有渠道读的是同一个 API

⑤ 邮件系统下次发邮件时也用新价格

Klaviyo 从 API 拉数据生成邮件

改 1 次价格 = 所有渠道自动同步

5 互动演示:改 CMS 数据,看多渠道同步

修改下面 CMS 表单中的产品名称价格,观察右边三个渠道如何实时同步变化:

Contentful 后台(CMS)
// API 实时返回的 JSON
{
  "name": "Deco X50",
  "tagline": "全屋覆盖 Mesh WiFi 系统",
  "price": 199.99
}
渠道 1:官网产品页
Deco X50
全屋覆盖 Mesh WiFi 系统
$199.99
加入购物车
渠道 2:手机 App
Deco X50
全屋覆盖 Mesh WiFi 系统
$199.99
渠道 3:营销邮件
From: TP-Link Shop
限时特惠:Deco X50
全屋覆盖 Mesh WiFi 系统
$199.99
立即选购 →
试试看

把产品名称改成 "Deco X90",把价格改成 299.99——观察右边三个渠道和下方的 JSON 如何同时变化。这就是 Headless CMS 的核心价值:一次修改,全渠道同步。

总结

传统 CMS(WordPress) Headless CMS(Contentful)
输出什么 完整的 HTML 网页 纯数据(JSON)
谁决定页面长什么样 CMS 的 PHP 模板 你的 React 组件(完全自主)
前端自由度 受模板限制 完全自由(React/Vue/App/任何东西)
多渠道 只能输出网页,App 和邮件需要单独维护 任何渠道都能调 API 取数据
改一次价格 改 N 个地方(每个渠道改一次) 改 1 次,全渠道自动同步
运营体验 后台填表单 后台填表单(几乎一样)
性能 每次请求都要 PHP 渲染,慢 Next.js SSG/ISR 静态缓存,极快