如何区分graphql中的include和skip指令?

如何区分graphql中的include和skip指令?,graphql,graphql-js,Graphql,Graphql Js,尽管这两个指令都可以隐藏一个字段。 当include为false时,其工作原理与skip为true时相同,那么是什么使它们不同。唯一的区别应该是在同时应用两个指令的情况下。Skip应该有更高的优先级 两个指令中的代码看起来非常相似唯一的区别应该是在同时应用两个指令的情况下。Skip应该有更高的优先级 两个指令的代码看起来非常相似根据规范,没有真正的区别-两个指令都可以用来防止字段被解析。在引擎盖下,唯一的区别是,如果字段上同时存在skip和include,则将首先计算skip逻辑,即如果skip

尽管这两个指令都可以隐藏一个字段。
当include为false时,其工作原理与skip为true时相同,那么是什么使它们不同。

唯一的区别应该是在同时应用两个指令的情况下。Skip应该有更高的优先级


两个指令中的代码看起来非常相似

唯一的区别应该是在同时应用两个指令的情况下。Skip应该有更高的优先级


两个指令的代码看起来非常相似

根据规范,没有真正的区别-两个指令都可以用来防止字段被解析。在引擎盖下,唯一的区别是,如果字段上同时存在skip和include,则将首先计算skip逻辑,即如果skip为true,则无论include的值如何,该字段都将被忽略

两者之间没有偏好。使用这两个指令,您可以在两种情况下重用相同的变量,以便包含或排除不同的字段。它还使查询更易于阅读和推理

例如,如果您有这样一个模式:

type Query {
  pet: Pet
}

type Pet {
  # other fields
  numberLitterBoxes: Int
  numberDogHouses: Int
}
使用这两个指令可以减少请求中必须包含的变量数量。例如,您可以查询:

query ExampleQuery ($isCat: Boolean) {
  pet {
    numberLitterBoxes @include(if: $isCat)
    numberDogHouses @skip(if: $isCat)
  }
}

如果您只有一个指令或另一个指令,上述查询将要求您传入两个变量isCat和isNotCat。

根据规范,没有真正的区别-这两个指令可用于防止字段被解析。在引擎盖下,唯一的区别是,如果字段上同时存在skip和include,则将首先计算skip逻辑,即如果skip为true,则无论include的值如何,该字段都将被忽略

两者之间没有偏好。使用这两个指令,您可以在两种情况下重用相同的变量,以便包含或排除不同的字段。它还使查询更易于阅读和推理

例如,如果您有这样一个模式:

type Query {
  pet: Pet
}

type Pet {
  # other fields
  numberLitterBoxes: Int
  numberDogHouses: Int
}
使用这两个指令可以减少请求中必须包含的变量数量。例如,您可以查询:

query ExampleQuery ($isCat: Boolean) {
  pet {
    numberLitterBoxes @include(if: $isCat)
    numberDogHouses @skip(if: $isCat)
  }
}

如果您只有一个指令或另一个指令,上述查询将要求您传入两个变量isCat和isNotCat。

我认为本文可能会告诉您有什么不同?@Abhijeet Raj,如果您认为提供的答案不正确,请在问题中添加更多细节我想这篇文章可能会告诉你有什么不同?@Abhijeet Raj,如果你认为提供的答案不合适,请在问题中添加更多细节