按照一些教程和示例,我将 GraphQL API 集成到了一个简单的 Vue 应用程序中。我使用 Apollo 与 API 进行交互,并使用 graphql-tag 提供的模板文字来编写查询,如下所示:
gql`
query getUser($userId: ID) {
user(id: $userId) {
name,
email
}
}
`
但是,我不太明白 graphql-tag 包的必要性。据我了解,这个包将查询转换为 AST,但是这在前端的目的是什么以及为什么需要 graphql-tag 包来执行此操作? GraphQL 查询不能按原样发送到服务器吗?
查询本身can发送到服务器而不转变成DocumentNode
目的。然而,阿波罗并不only向您的服务器发送查询。它实现了许多附加功能,包括响应的规范化缓存。为了使缓存发挥作用,我们需要将提供的查询解析为机器可读的格式。例如,通过这样做,我们可以知道所有这些查询实际上都是等效的,并且如果我们已经拥有数据,则可以从缓存中获取:
{
foo
bar
}
query SomeOperationName {
foo
bar
}
query { foo bar }
{
bar
qux: foo
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)