Cri*_*iss 3 vue.js graphql apollo-client graphql-tag
根据一些教程和示例,我将 GraphQL API 集成到一个简单的 Vue 应用程序中。我正在使用 Apollo 与 API 和 graphql-tag 提供的模板文字进行交互来编写查询,如下所示:
gql`
query getUser($userId: ID) {
user(id: $userId) {
name,
email
}
}
`
Run Code Online (Sandbox Code Playgroud)
但是,我不太明白 graphql-tag 包的必要性。据我了解,这个包将查询转换为 AST,但是在前端这样做的目的是什么,为什么需要 graphql-tag 包来做到这一点?GraphQL 查询不能按原样发送到服务器吗?
查询本身可以发送到服务器,而不会变成DocumentNode对象。但是,Apollo不仅向您的服务器发送查询。它实现了许多附加功能,包括响应的规范化缓存。为了缓存工作,我们需要将提供的查询解析为机器可读的格式。例如,通过这样做,我们可以知道所有这些查询实际上是等效的,如果我们已经有了数据,就可以从缓存中获取:
{
foo
bar
}
query SomeOperationName {
foo
bar
}
query { foo bar }
{
bar
qux: foo
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1016 次 |
| 最近记录: |