任何人已经从 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 的文档已将其作为其命名约定
所有文档都从存储库中提取并创建为 棱镜$ {contentTypeName}和allPrismic $ {contentTypeName},其中 $ {contentTypeName}是文档内容类型的API ID。
如果我想切换到gatsby-source-prismic-graphql,还是要使用相同的约定来命名,是否必须重写所有查询?
答案 0 :(得分:1)
我注意到的唯一区别是,使用 gatsby-source-prismic-graphql 进行的查询在查询开始时添加了一个“ prismic”字段。例如。
{
prismic {
allHomepages {
edges {
node {
title
description
}
}
}
}
}
对于 gatsby-source-prismic ,该字段不可用。这只是第一种方法,进行简单查询。我不知道是否更复杂,更深入文档(用于调用“切片”或“链接”字段)查询的查询彼此相似甚至更大。所以这是我的第一个猜测。
答案 1 :(得分:0)
这是查询的更复杂版本。我添加了查询名称和两个切片:
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