Apolloメモ

リクエスト

キャッシュ

フラグメント

const FooFragment = gql`
  fragment FooFragment on Bar {
    name
  }
`;

const client = new ApolloClient({
  uri: 'https://example.com/',
  cache: new InMemoryCache({
    fragments: createFragmentRegistry(gql`
      ${UserFragment}
    `),
  }),
});

type

type Car {
  id: ID!
  name: String!
  size(unit: LengthUnit = METER): Float
}

ディレクティブ

GraphQL標準のディレクティブ

https://spec.graphql.org/June2018/#sec-Type-System.Directives

@client

フィールドがローカルに存在するデータであり、そのデータ取得がサーバーへのクエリではなくクライアント側のキャッシュまたはローカルストアから行われることを示すフラグとして機能します。

@connect

@connectionディレクティブを付与すると、同じクエリでも@connectionディレクティブに与えられた値毎に別のクエリとして区別されます。これによって、同じクエリで用途に応じて複数の値をキャッシュすることができます。

@defer

指定したフィールドを遅延的に取得する。

@export

指定したフィールドを変数として使うことができるようにする。

@nonreactive

指定したフィールドが変更されても再レンダリングが発生しないようにする。