gatsby-source-prismic-graphql 查询结构

gatsby-source-prismic-graphql query structure

任何人从 gatsby-source-prismic 跳到 gatsby-source-prismic-graphql 并且知道是否查询结构和命名是相同的。

例如,我目前正在为 gatsby-source-prismic 使用类似下面的内容。

  export const query = graphql`
    query pageQuery($uid: String!) {
      page: prismicPageTemplate(uid: { eq: $uid }) {
        uid
        type
        data {
          title
          body {
            ... on PrismicPageTemplateBodyQuestionSlice {
              slice_type
              primary {
                name
                title {
                  html
                  text
                }
              }
            }
         }
      }
    }
}

我已经阅读了这两个插件的文档,也看到其他人问过类似的问题。 gatsby-source-prismic 的文档将其作为命名约定包含在内

All documents are pulled from your repository and created as prismic${contentTypeName} and allPrismic${contentTypeName}, where ${contentTypeName} is the API ID of your document's content type.

如果我想切换到 gatsby-source-prismic-graphql,我是否必须重新编写所有查询,或者他们是否使用相同的命名约定?

我注意到的唯一区别是使用 gatsby-source-prismic-graphql 进行的查询会在查询的开头添加一个 'prismic' 字段。例如。

{
  prismic {
    allHomepages {
      edges {
        node {
          title
          description
        }
      }
    }
  }
} 

而对于 gatsby-source-prismic,该字段不可用。这只是第一种方法,进行简单查询。我不知道更复杂、更深入文档(用于调用 Slices 或 Link 字段)的查询是否相似,或者彼此之间的差异更大。所以这是我的第一个猜测。

这是一个更复杂的查询版本。我添加了查询名称和两个切片:

query MyHomeQuery {
  prismic {
    allHomepages {
      edges {
        node {
         title
         description
          body {
            ... on PRISMIC_HomeBodyText {
              type
              label
            }
            ... on PRISMIC_HomeBodyImage_with_caption {
              type
              label
            }
          }
        }
      }
    }
  }
}

你是对的。 gatsby-source-prismic 中的名称将是 allPrismicHomePage