web-dev-qa-db-ja.com

リレー/ graphqlクエリの3つのドット/ピリオド/省略記号はどういう意味ですか?

relay docs このフラグメントが含まれています:

query RebelsRefetchQuery {
  node(id: "RmFjdGlvbjox") {
    id
    ... on Faction {
      name
    }
  }
}

これは何ですか... on Faction構文上の意味は?

30
jbrown

フラグメントに関連する...の2つの使用法があります。

参照によるフラグメントの組み込み

query Foo {
  user(id: 4) {
    ...userFields
  }
}

fragment userFields on User {
  name
}

フラグメントから埋め込みクエリにフィールドを構成する効果があります。

query Foo {
  user(id: 4) {
    name
  }
}

フラグメントが他のフラグメントを構成する場合があることに注意してください。

インラインフラグメント

これらは、タイプに依存する方法でフィールドを構成するために使用できます。例えば:

query Foo {
  profile(id: $id) {
    url
    ... on User {
      homeAddress
    }
    ... on Business {
      address
    }
  }
}

この例では、サーバーは、要求されたオブジェクトがhomeAddressであるかaddressであるかに基づいて、実行時にUserまたはBusinessフィールドを返すかどうかを決定します。

30
wincent

ああ。説明されています ここ

フラグメントは、スプレッド演算子(...)を使用して消費されます。フラグメントによって選択されたすべてのフィールドは、フラグメントの呼び出しと同じレベルでクエリフィールドの選択に追加されます。これは、複数レベルのフラグメントスプレッドを通じて発生します。

6
jbrown