在进行 Gatsby 开发时,@martinleejones/gatsby-source-contentful 这个 npm 包非常有用。它提供了一个 Contentful 数据源,并可以与 Gatsby 一起使用。在本文中,我们将深入介绍如何使用这个包。
什么是 Contentful?
Contentful 是一种内容管理系统(CMS),它提供了一种简洁的界面,用于管理数据,如文章、页面和图像。Contentful 是 JAMstack 的最佳实践之一,允许 Gatsby 开发人员使用一个单一的 CMS,从而节省时间并提高代码的可维护性。
安装与设置
首先,我们需要安装依赖。在命令行工具中,输入以下命令:
npm install --save @martinleejones/gatsby-source-contentful
安装完成后,我们需要在 gatsby-config.js 文件中配置 plugin。请确保创建了 Contentful 帐户,并将 Secrets(验证信息)存储在环境变量中。以下是如何在 gatsby-config.js 文件中设置 Contentful plugin 的示例代码:
-- -------------------- ---- ------- -------------- - - -------- - - -------- ------------------------------------------- -------- - -------- -------------------------------- ------------ ------------------------------------ -- -- -- -
这里我们使用了 process.env 获取 Secrets,以避免将它们直接存储在代码中。这样可以提高我们的网站的安全性。
查询 node
在设置插件之后,我们可以使用 GraphQL 查询 Contentful 数据。让我们看一个例子。假设我们想要查询所有类型为 "Post" 的数据:
-- -------------------- ---- ------- ------ ------------------ ------ ----- ----- -------- --- - ----------------------- ----- --- ------ - - - -
此时,我们可以在 Gatsby 网站中使用这些数据,并在页面中显示它们。
页面查询
除了使用 GraphQL 查询之外,我们还可以在页面查询 data。这个使用方法非常方便,让我们看一个示例。前提是,我们已经有一个页面组件,并想要使用数据呈现页面。下面是一个示例:
-- -------------------- ---- ------- ------ ----- ---- ------- ------ - ------- - ---- -------- ----- ----- - -- ---- -- -- - -- ------------------------------------ ---- -- -- - --------- --------------------- ------------------------- ----------------------- ---------- --- --- - ------ ----- ----- - -------- ----- - ----------------- - ----- - ---- - ----- ------- - --- - ----------------------- ----- --- ------ - - - - - ------ ------- -----
这里我们使用了 graphql 模块导出的变量 "query",并将其作为一个对象导出。我们在其中定义了一个 allContentfulPost 变量,以获取所有 "Post" 数据。使用这个变量,我们访问了所有查询结果,并在页面上呈现了所有文章。
总结
Contentful 是 JAMstack 的最佳实践之一,使我们的站点变得更加易于管理。@martinleejones/gatsby-source-contentful npm 包是一个很好的资产,它让我们直接从 Contentful 中获取数据,并使用 GraphQL 和页面查询将其用于构建站点。希望这篇文章对大家有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60067354890c4f72775839b2