GraphQL/Gatsby/Prismic - 查询中 'edges.node.data' 和 'nodes.data' 的区别
GraphQL/Gatsby/Prismic - difference between 'edges.node.data' and 'nodes.data' in query
我正在关注 Medium 上的 this 教程,让 Gatsby 使用 Prismic。
在 GraphiQL 浏览器中,下面的两个查询都产生了相同的结果,我想知道什么时候我应该使用一个而不是另一个(即 edges.node.data vs nodes.data):
查询#1:
query Articles {
articles: allPrismicArticle {
edges {
node {
data {
title {
text
}
image {
url
}
paragraph {
html
}
}
}
}
}
}
查询#2:
query Articles {
articles: allPrismicArticle {
nodes {
data {
title {
text
}
image {
url
}
paragraph {
html
}
}
}
}
}
正如您所发现的,根本没有区别。 nodes
可以看作是 edges.map(edge => edge.node)
的快捷方式。在使用 graphql 返回的数据时,这将为我们节省一些输入。
在某些情况下,查询边缘很有用,例如在 allMarkdownRemark
查询中,edges
可能包含有用的信息,例如帖子总数。
我正在关注 Medium 上的 this 教程,让 Gatsby 使用 Prismic。
在 GraphiQL 浏览器中,下面的两个查询都产生了相同的结果,我想知道什么时候我应该使用一个而不是另一个(即 edges.node.data vs nodes.data):
查询#1:
query Articles {
articles: allPrismicArticle {
edges {
node {
data {
title {
text
}
image {
url
}
paragraph {
html
}
}
}
}
}
}
查询#2:
query Articles {
articles: allPrismicArticle {
nodes {
data {
title {
text
}
image {
url
}
paragraph {
html
}
}
}
}
}
正如您所发现的,根本没有区别。 nodes
可以看作是 edges.map(edge => edge.node)
的快捷方式。在使用 graphql 返回的数据时,这将为我们节省一些输入。
在某些情况下,查询边缘很有用,例如在 allMarkdownRemark
查询中,edges
可能包含有用的信息,例如帖子总数。