本文へ移動
バージョン: v18.0.0

アーキテクチャ概要

このドキュメントは、ランタイムアーキテクチャおよびコンパイラアーキテクチャと共に、Relayの高レベルアーキテクチャについて説明しています。対象読者は、Relayへの貢献に関心のある開発者、Relayの構成要素を利用してより高レベルのAPIを作成しようとしている開発者、およびRelayの内部についてより深く理解したいと考えているすべての人です。製品構築にRelayを使用する方法についてさらに学習したい開発者にとって、ガイドツアーが最適なリソースです。

コアモジュール

Relayは3つのコア部分で構成されています

  • Relayコンパイラ: GraphQLを最適化するGraphQLコンパイラであり、クエリを変換および最適化するための一般的なユーティリティと、ビルドアートファクトの生成を提供します。コンパイラの新しい機能として、カスタムディレクティブという形で新しいGraphQL機能の実験を容易にすることで、これらのディレクティブを使用したコードを標準の仕様準拠GraphQLに簡単に変換できます。
  • Relayランタイム: より高レベルのクライアントAPIを構築するために使用できる、フル機能のハイパフォーマンスGraphQLランタイムです。ランタイムは、正規化されたオブジェクトキャッシュ、最適化された「書き込み」および「読み取り」操作、フィールドデータの増分フェッチのための汎用的な抽象化(ページングなど)、参照されていないキャッシュエントリの削除のためのガベージコレクション、任意のロジックを使用した楽観的ミューテーション、サブスクリプションとライブクエリの構築のサポートなどを備えています。
  • React/Relay: RelayランタイムとReactを統合する高レベルの製品APIです。これは、ほとんどの製品開発者にとってRelayの主要な公開インターフェースであり、クエリデータのフェッチや、再利用可能なコンポーネントのデータ依存関係の定義(例:useFragment)のためのAPIを提供します。

これらのモジュールは疎結合であることに注意してください。たとえば、コンパイラは、ランタイムが消費する明確に定義された形式でクエリの表現を出力するため、必要に応じてコンパイラのインプリメンテーションを交換できます。React/Relayはランタイムの十分に文書化された公開インターフェースのみに依存するため、実際のインプリメンテーションを交換できます。この疎結合により、コミュニティは、Relayランタイムを使用した特殊な製品APIの開発や、React以外のビューライブラリとのランタイムの統合など、新しいユースケースを探求できることを期待しています。


このページは役に立ちましたか?

簡単な質問にお答えいただき、サイトをさらに改善するお手伝いをお願いします。 数個の簡単な質問にお答えください.