GraphQL/Gatsby/Prismic - 查询中“edges.node.data”和“nodes.data”之间的区别

eps*_*n42 9 graphql gatsby prismic.io

我正在关注这个关于 Medium 的教程,让 Gatsby 与 Prismic 一起工作。

在 GraphiQL 资源管理器中,下面的两个查询都产生相同的结果,并且想知道我什么时候应该使用一个而不是另一个(即edge.node.datanodes.data):

查询#1:

query Articles {
  articles: allPrismicArticle {
    edges {
      node {
        data {
          title {
            text
          }
          image {
            url
          }
          paragraph {
            html
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

查询#2:

query Articles {
  articles: allPrismicArticle {
    nodes {
      data {
        title {
          text
        }
        image {
          url
        }
        paragraph {
          html
        }
      }
    }
  }
}

Run Code Online (Sandbox Code Playgroud)

Der*_*yen 11

正如你所发现的,根本没有区别。nodes可以被认为是 的捷径edges.map(edge => edge.node)。在使用由 graphql 返回的数据时,这将为我们节省一些输入。

在某些情况下,查询边很有用,例如在allMarkdownRemark查询中,edges可能包含有用的信息,例如总帖子数。