gpt4 book ai didi

javascript - 变量与模板文字插值

转载 作者:行者123 更新时间:2023-12-04 23:17:10 25 4
gpt4 key购买 nike

有什么情况需要使用${foo}在您的 Apollo 查询中,而不是 variables: {foo: foo} ?

enter image description here

最佳答案

您可以在 GraphQL 查询中使用变量做很多事情!

  • 显然,您可以将变量作为参数传递给各个字段
  • 您也可以使用 @skip and @include directives修改查询中的字段

  • 通过结合这两个工具以及将来可能的其他工具,基本上不需要进行字符串插值。

    为什么 GraphQL 查询中的字符串插值不好?好吧,出于几个原因,最好将 GraphQL 查询字符串视为静态对象,而不是要操作的字符串:
  • 您可能会意外地对无效查询进行字符串操作。如果你没有正确地转义一些参数,你最终可能会得到一个返回错误的查询或一些你没有预料到的完全不同的数据。变量是 JSON 编码的,因此无需转义它们。
  • 如果您的查询是动态生成的,则无法使用 eslint-plugin-graphql 等工具对其进行静态分析。 ,因此您无法在不实际运行代码的情况下检查您的查询是否有效。
  • 如果查询由许多不同的字符串组成,其他开发人员将更难以理解返回数据的形状。如果其中有任意 JavaScript 代码,您也不能将查询复制粘贴到 GraphiQL 之类的内容中以尝试运行它。

  • 简而言之,有很多机会可以用 GraphQL 查询字符串做一些很酷的事情,但是一旦你开始使用任意代码来操作它们,就会变得更加困难或不可能。所以我的建议是,坚持变量。

    关于javascript - 变量与模板文字插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37337088/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com