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 可能包含有用的信息,例如帖子总数。