传统的 CMS(Content Management System,内容管理系统)设计了一整套模板和样式,让使用者能够快速的建立内容和页面。然而,逐渐增长的需求和开发技术的进步,让传统的 CMS 设计变得过于复杂、过于僵硬,无法满足现代 Web 开发的需求。于是,Headless CMS 应运而生。
什么是 Headless CMS
Headless CMS 是一种新型 CMS 架构,更加强调可定制化和极大的灵活性。“Headless” 一词会让人想到没有头部,也就是说 Headless CMS 不关注如何组织和呈现内容,这部分的工作交给其他系统去完成。
Headless CMS 只提供对数据库的访问,它可以被用于任何类型的应用,包括原生应用、Web 应用、电子商务等。基本上任何内容管理,包括博客文章、新闻内容、产品信息、用户帐户信息、甚至是文件和图片,都可以通过 Headless CMS 进行管理。
Headless CMS 的优势
可定制化
Headless CMS 提供灵活自由的页面内容设计,自由定义自己的数据结构、内容类型、字段。传统 CMS 由于为了应对各种环境需要提供大量的功能,因此变成了一个庞大复杂的系统。反过来,Headless CMS 更轻盈、功能更简单,能快速适应新的开发需求。
数据分离
Headless CMS 将内容数据和前端样式分离,大小、内容格式以及数据存储方式都可以被开发者自行定义,完全以自己的业务模型为出发点。因此,为不同客户端和业务场景输出数据,比如 Web 端、手机端等,都变得相对简单了。
平台无关
Headless CMS 给开发者提供了一种强大的工具,可以将所有的内容和业务逻辑拆分为小型的单元,可以在任何平台和客户端上使用。对于开发者而言,Headless CMS 这种内容管理方式使得快速迭代成为了可能。
Headless CMS 的示例代码
以下代码展示了如何基于 Strapi(一种常见的 Headless CMS)来建立一个简单的博客系统。
安装 Strapi
npm i -g strapi@beta
创建博客系统项目
strapi new my-blog --quickstart
添加一个博客类型
strapi generate:api blog
编辑博客类型的字段
在 api/blog/models/blog.js
中加入以下代码:
-- -------------------- ---- ------- -------------- - - ----------- - ------ - ----- --------- --------- ---- -- -------- - ----- ------- --------- ---- -- ------------- - ----- ----------- --------- ---- - - --
启动服务器
npm run develop
以上的代码示例展示了 Strapi 如何用于在 Web 应用程序中处理博客数据。开发者可以使用以上模版来快速创建一个博客系统,而这个系统的数据通过 API 发送给 Angular,React 或 Vue 等前端框架,同时很容易地在其他客户端应用中引用。
总结
Headless CMS 提供了更加灵活的方式管理内容,支持开发者将数据在任何客户端或平台上使用。Headless CMS 不仅仅解决了上面所提到的问题,同时也能更好地建立一个高性能、灵活的应用程序,因此,它可能在未来的 Web 发展中占领重要地位。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64d1f70db5eee0b525951b3f