在现代多端时代,一个网站可能需要同时支持 PC、手机、平板等多种设备,而这些设备的分辨率、屏幕大小、操作方式以及用户习惯都有所不同,要想在所有设备上呈现统一的内容,就需要一种能够实现多终端统一内容管理的解决方案。本文将介绍如何使用 Headless CMS 实现这一需求。
什么是 Headless CMS
传统 CMS 旨在为构建 Web 应用程序提供完整的解决方案,包括内容管理、模板系统、网站托管等。而 Headless CMS 更关注内容管理部分,将内容管理和内容呈现解耦,即只提供内容管理接口,而不关心内容如何呈现,使得开发者能够更加自由地定制内容展示界面。
和传统 CMS 不同的是,Headless CMS 不提供内容展示界面,而是通过 API 将内容数据提供出来,由开发者自行解析、渲染展示。这种方式有许多优点,比如方便各种终端交互、扩展性强、易于定制。
Headless CMS 的优势
- 面向多平台使用:Headless CMS 分离了内容管理和内容展示,使得一份内容可同时被多个终端使用,强化了多终端展示的一致性和互通性。
- 敏捷开发:Headless CMS 提供的 API 接口,使得开发人员不必关心内容的呈现和展现,专注于数据编程和后端开发,提高效率和敏捷度。
- 多样化:Headless CMS 不关心客户端渲染,所以数据可以用于各种多样的客户端,如 react 网站,原生 mobile 应用等。
实现多终端统一内容管理的步骤
- 选择 Headless CMS 平台,如 Prismic、Contentful 等。
- 创建并管理所需要的内容,或者将既有的数据导入到 Headless CMS 平台。
- 根据项目需要,开发所需要的展示界面。在开发时使用 JAMstack,使得数据预取。对于不同平台的展现,设计 API 数据结构,让数据更方便用户的呈现展示,在数据结构设计中,可以考虑类似 GraphQL 的方式提高多端数据调用效率。根据用户的需求设定数据的过滤方式,例如需要一个主页轮播图的 API,每次调用只返回部分数据,减小请求倾向性。
- 在客户端上调用相应的API,获取数据,并渲染出页面,根据用户需求制定数据的解析方式和数据交互方式。
Headless CMS 实现多终端统一内容管理示例
以下为基于 Prismic 平台实现的多终端统一内容管理演示示例。
前置条件
我们先要注册一个 Prismic 账号,并创建一个 Repository。
创建文档
在 Repository 中创建一个文档可以通过独立页面栏,选择 New Document 在弹出框中选择目录,然后就可以随意创建内容信息,即所编写的文章,如下示例进行创建。
添加字段
在新建一个文档后,我们需要添加,定义字段。在 Prismic 中创建一个 Document 需要主要的是 UID, UID 具有唯一性。在文档中也可以创建自定义类型,名称为 Article 或者任何你想要给出的名称,然后为其添加 Text 对象作为字段并其中填入文章。如下所示:
创建 API并索引数据
创建API的同时,可以通过Embed页面右上角的按钮获取API, 将希望在API中索引的数据添加到API中,否则API内容将会为空。通过 Prismic 进入你的 Repository,点击Settings。选择API & Security,创建一个新的API,然后编辑 API 以添加丰富的数据,并返回到 API 页面,设定字段,将所希望索引的数据与相应字段关联即可完成数据模型。
使用 API 获取数据
然后我们就可以在任意平台使用相应 API 获取数据,进行后续的展示,并且将得到的 JSON 进行解析处理,从而实现多终端展示。
// 客户端端代码 const res = await fetch(`${API_ENDPOINT}/?q=${q}`); const { results } = await res.json(); return results;
总结
本文介绍了 Headless CMS 的优势以及如何使用 Headless CMS 实现多终端统一内容管理,并给出了整个过程的示例代码。Headless CMS 将内容管理从内容展现中解耦,为实现多终端统一内容管理提供了新途径,希望这篇文章能对大家有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64714d2c968c7c53b0f330ad