为什么 Apollo 需要 graphql-tag

2024-01-04

按照一些教程和示例,我将 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(使用前将#替换为@)

为什么 Apollo 需要 graphql-tag 的相关文章

  • 在重复内容区域添加

    我有一个菜单组件 简单地说 它接受一个带有一系列选项的道具 并为每个选项在菜单中呈现一个项目 我希望能够根据用例自定义每个菜单项内的标记 因此我在菜单项元素内使用了占位符 你可以在这个中看到一个例子fiddle https jsfiddle
  • 将 CKEditor 5 与 nuxtjs 结合使用

    我正在尝试在我的 Nuxtjs 项目中导入 CKEditor 5 的自定义版本 并且我已经尝试了所有可能的方法来正确导入它 但没有一个对我有用 这是其中之一 let ClassicEditor let CKEditor if process
  • 石墨烯错误消息

    我想知道是否可以翻译石墨烯提供的验证错误消息 例如 未提供身份验证凭据 如下面的代码示例所示 errors message Authentication credentials were not provided locations lin
  • 可排序不拖动 safari 中表格的所有列

    我有一个vue引导表 https bootstrap vue org docs components table使用 v 槽为每个单元使用自定义模板 所有这些单元格都是自定义组件 我希望该表的行可以排序 也就是说 我希望用户能够拖放该表中的
  • 如何解决【Vue warn】:使用数组语法时 props 必须是字符串?

    我的看法是这样的 div class col md 8 div
  • Vue 表单输入与现有值的绑定

    我想将输入与模型绑定 当页面加载时 输入就有一个值 但是当我与模型绑定时 当我使用 null 或空值初始化模型时 它会变空 div div
  • Laravel 使用 laravel-cors 和 axios 进行 POST 的“CSRF 令牌不匹配”

    我有一个正在运行的domain A拉拉维尔 5 8返回 API 的引擎网络路线 它必须检查来源才能只服务几个域 包括domain B Barryvdh laravel cors我安装了barryvdh laravel cors https
  • Vuetify 数据表:item-class 不执行任何操作

    我对 Vuetify v 2 3 4 数据表中的 item class 属性感到非常困惑 即使我尝试添加静态文本类 它也不会执行任何操作
  • 如何将express.js服务器部署到Netlify

    我正在尝试将 Vue js Node Express MongoDB MEVN 堆栈应用程序部署到 Netlify 我成功地将应用程序的前端部署到 Netlify 现在正在尝试基于以下内容部署 Express 服务器serverless h
  • 当 Axios 中的 responseType 为 blob 和 VueJs 时,如何读取 http 错误? [复制]

    这个问题在这里已经有答案了 我在 VueJS 应用程序中使用 Blob responseType 和 Axios 从服务器下载文档 当响应代码为 200 时 它工作正常并下载文件 但是当出现任何 http 错误时 我在捕获错误时无法读取状态
  • d3-sankey 链接在拖动事件时未更新

    问题一 我无法更新拖动事件上的 d3 sankey 链接 我正在尝试复制与此类似的 d3 垂直和水平拖动事件 https bl ocks org d3noob 5028304 https bl ocks org d3noob 5028304
  • 谷歌地图上的自定义标记

    问题详情 显示默认图标 我期待标记的自定义图标 我在下面的代码中遗漏了什么吗 我正在使用 Laravel 5 6 12 和 vue js 并尝试在谷歌地图中显示自定义图标 我的代码在模板下面
  • Vuetify 连接 v-select 的 item-text 中的两个字段

    有没有办法在 v select 的项目文本字段中将两个字段连接在一起 我让它适用于下拉列表值 但可见条目不显示这两个字段 问题出在这里 item text data item name data item group Code
  • NativeScript + Vue.js + FontAwesome

    我正在尝试使用 FontAwesome 图标集通过 NativeScript 和 Vue js 构建应用程序 但我无法找出问题 因为我什至没有错误提示消息 我忠实地关注文档 但没有任何反应 我到处寻找 但什么也没有 如果你能帮我解决这个问题
  • 是否可以从 URL 中包含 Vue.js 组件?

    我们正在设计一个插件架构 并且很好奇是否有一种方法允许通过 URL 将第 3 方插件包含为 Vue 组件 如何从远程 url 导入 vue 文件 例如 我尝试遵循 Alex Jover Morales 的方法来导入异步组件异步 vue js
  • Vue CLI 3 不会将供应商转换为 ES5

    我们有一个 vue cli 3 项目 它工作得很好并且编译没有问题 事实上 我们必须支持仅支持 ES5 代码的旧浏览器 在项目中我们集成了一些用ES6编写的外部库 reconnecting websocket是一个例子 Problem 使用
  • 如何在 vue.js 中将文件和数据附加到 FormData

    我正在尝试将上传的文件和数据值附加到 vue js 中的 FormData 中 在我的控制器中 只能评估文件请求 data return file categ 在我的方法中 var form new FormData var file th
  • VueJS vue-spinner 属性或方法“加载”未定义

    你好 我正在尝试设置view spinner https www npmjs com package vue spinner 但是出现错误 vue esm js 591 Vue warn 属性或方法 loading 未在实例上定义 但在渲染
  • Vuex 2.0 调度与提交

    有人可以解释一下什么时候使用调度和提交吗 我理解提交会触发突变 调度会触发操作 然而 派遣不也是一种行动吗 正如你所说 dispatch触发一个动作 并且commit触发突变 以下是如何使用这些概念 你总是用 dispatch来自路线 组件
  • 在 Flutter 的 Ferry Graphql 中序列化标量 JSON 以实现灵活的查询

    我有以下 JSON 标量 The JSON scalar type represents JSON values as specified by ECMA 404 http www ecma international org public

随机推荐

  • Javascript 和 CSS 之间保持 DRY

    假设您有一个可以通过按钮切换打开和关闭的菜单 我的标准方法是为关闭的菜单编写 CSS 并编写指定 或动画 打开菜单状态的 Javascript 最近我开始接触 Active js 一个客户端 MVC 框架 它为视图类提供了用于制作 DOM
  • 将 JSON 解组为映射/字符串列表

    我想将 Json 解组到映射 字符串列表 例如 Map gt 这是我的输入 pointsOfSale pointOfSale href pointsOfSale UUID 0abc2aca 7930 4c9e 9f38 8af3d0692e
  • Spark Window函数最后一个非空值

    我们有一个用户事件的时间序列数据库 如下所示 timestamp user id event ticke type error type 2019 06 06 14 33 31 user a choose ticket ticke b NU
  • 在 MySQL 中存储 0.00001

    我有一个赚取网站 我希望用户每次点击赚取 0 00001 我知道它低于 1p 我可以使用什么类型的色谱柱 我努力了int and float但两者都不起作用 Use DECIMAL http dev mysql com doc refman
  • 将勾号 (✔) 添加到 string.xml

    我在字符串消息上添加勾号 strings xml 但是当我在移动设备上显示它时 我得到一个 框 而不是刻度线 我已直接将符号粘贴到我的字符串消息上 我们有什么办法可以处理吗 我们需要使用 unicode 值吗 添加unicode符号 u27
  • 如何使用 Perl 进行批量搜索和替换?

    我有以下脚本 它接受输入文件 输出文件和 将输入文件中的字符串替换为其他字符串并写出 输出文件 我想更改脚本以遍历文件目录 即 脚本不应提示输入和输出文件 而应采用 作为参数的目录路径 例如 C temp allFilesTobeRepla
  • Angular 8 通用服务器端渲染

    我正在关注这个教程https blog angular university io angular universal https blog angular university io angular universal 但我无法执行第一个
  • 微服务:工作者角色、API 或两者兼而有之?

    我见过微服务的混合示例 它们实现为工作角色处理队列中的请求和 或 API REST 支持异步场景 可以利用队列 通过简单的哑队列侦听器将请求转发到微服务 REST API 而同步场景将直接调用 REST API 我认为微服务这个术语的定义很
  • Vuejs 子组件中的 Prop 值无法绑定到元素属性

    我正在使用 Vuetify 在 Vuejs 中开发一个管理应用程序 并且表单中有三个字段供用户选择十六进制颜色值 为了让用户更容易 我实现了一个基于的颜色选择器这个代码笔 https codepen io Brownsugar pen Na
  • JQuery 通过 IFrame 进行可拖动和可调整大小(解决方案)

    我最近在使用 JQuery Draggable 和 Resizing 插件时遇到了一些麻烦 在寻找解决方案时 我在许多不同的地方发现了一些非常零碎的代码 最后归档到一个干净的解决方案 该解决方案似乎对我来说几乎完美 我想我会与其他人分享我的
  • 将特定位置的位收集为新值

    我有一个大小为 N 个字符的位掩码 它是静态已知的 即可以在编译时计算 但它不是单个常量 所以我不能只是写下来 位设置为 1 表示 想要 的位 我有一个相同大小的值 该值只有在运行时才知道 我想按顺序从该值收集 想要的 位到新值的开头 为了
  • 在 Sublime Text 2 中重新格式化段落的常用方法是什么?

    当您有一个包含长行的文本文件时 如何将它们重新格式化为一定的宽度 同时 不把它们混在一起吗 一般来说 我在 Vim 中寻找的是这个 每行都要完成 V gq j with textwidth提前设定 ALT CMD q在 OS X 上 将硬换
  • 是否可以使用Javamail发送邮件而无需身份验证?

    我一直在复制这段代码http www tutorialspoint com java java sending email htm http www tutorialspoint com java java sending email ht
  • 您是否可以使用 PtrToStringAuto 在 macOS 上的 Powershell 7 中解密安全字符串?

    我没有成功地让以下代码片段输出 Hello World 在PS7中 string Hello World ConvertTo SecureString AsPlainText Force System Runtime InteropServ
  • PHP imagecreatefromjpeg 同时保持方向

    我一直在开发我的图像上传网站 我正在尝试从我的 iPhone 拍照并将它们上传到我的网络服务器 我的文件上传正常 但是我遇到的问题是我的所有图像都向左旋转 90 度 我的图片上传过程 imageObject imagecreatefromj
  • 汇编指令是否将 1-1 映射到机器语言?

    我正在同时阅读各种有关计算机体系结构的书籍 但我很困惑 有的书上说汇编指令只是机器指令的助记符 每条指令恰好对应一条机器指令 然而 塔南鲍姆的结构化计算机组织将组件放在层上above操作系统 似乎暗示汇编以某种方式使用操作系统 我还没有阅读
  • Gulp ngmin + uglify 无法正常工作

    我有以下任务 gulp task scripts function return gulp src app js app js app config config js app js controllers js app js direct
  • 如何在不同大小的位图上应用矩阵

    我有2个图像视图 第一个图像视图有600像素大小的位图 第二个图像视图有1024像素位图 我正在使用矩阵缩放旋转和移动第一个图像视图 一旦用户点击按钮 第二个图像视图应该具有相同的大小缩放和旋转 但因为第二个图像视图有更大的位图 我不能只使
  • 如何在Oracle中仅根据日期部分比较两个DATE值?

    我正在尝试使用以下查询获取过去 30 天的计数 SELECT date occured COUNT FROM problem WHERE date occured gt CURRENT DATE 30 GROUP BY date occur
  • 为什么 Apollo 需要 graphql-tag

    按照一些教程和示例 我将 GraphQL API 集成到了一个简单的 Vue 应用程序中 我使用 Apollo 与 API 进行交互 并使用 graphql tag 提供的模板文字来编写查询 如下所示 gql query getUser u