本文へスキップ
バージョン: v18.0.0

Relay ドキュメント

Relayは、GraphQLを使用してデータの取得と更新を行うReact用データ管理ライブラリです。長年の経験を活かし、コードを**安定かつ保守可能**に保ちながら、**デフォルトで優れたパフォーマンス**を実現します。

Relayは、Reactコンポーネントの構成可能性をデータ取得にもたらします。各コンポーネントは独自のデータニーズを宣言し、Relayはそれらを効率的なプリロード可能なクエリに統合します。その設計のあらゆる側面は、コンポーネントを記述する自然な方法を最も高性能なものにすることを目的としています。

機能

  • 宣言型データ:各コンポーネントに必要なデータを宣言するだけで、Relayが読み込み状態を処理します。
  • 共存と構成可能性:各コンポーネントは独自のデータニーズを宣言します。Relayはそれらを効率的なクエリに統合します。異なる画面でコンポーネントを再利用する場合、クエリは自動的に更新されます。
  • プリフェッチング:Relayはコードを分析するため、コードのダウンロードや実行前にクエリをフェッチを開始できます。
  • UIパターン:Relayは、読み込み状態、ページネーション、再フェッチ、楽観的更新、ロールバックなど、正しく実装するのが難しい一般的なUI動作を実装します。
  • 一貫性のある更新:Relayは正規化されたデータストアを維持するため、同じデータを監視するコンポーネントは、異なるクエリでデータにアクセスした場合でも同期された状態を保ちます。
  • ストリーミングと遅延データ:クエリの部分を宣言的に遅延させると、Relayはデータのストリーミングに伴ってUIを徐々に再レンダリングします。
  • 優れた開発者エクスペリエンス:Relayは、GraphQLスキーマのオートコンプリートと定義への移動を提供します。
  • 型安全性:Relayは型定義を生成するため、エラーは実行時ではなく静的に検出されます。
  • ローカルデータの管理:サーバーデータとローカルクライアント状態に同じAPIを使用します。
  • ハイパー最適化されたランタイム:Relayは徹底的に最適化されています。そのJITフレンドリーなランタイムは、期待されるペイロードを静的に決定することで、受信データをより高速に処理します。

スタック

RelayはWebとReact Nativeの両方で動作し、Metaでは両方の環境で広く使用されています。フレームワークに依存せず、Next、React Router、Create React Appなどとも連携します。TypeScriptとFlowの両方にも対応しています。

RelayはGraphQLに完全に依存しているため、GraphQLを使用できない場合は、適切な選択肢ではありません。

Relayには、データの取得と管理を行うUI非依存レイヤーと、読み込み状態、ページネーション、その他のUIパラダイムを処理するReact固有のレイヤーがあります。主にReactで使用する場合にサポートされますが、必要に応じてReactの外部でRelayデータにアクセスすることもできます。RelayのReact固有の部分はSuspenseに基づいているため、古いバージョンのReactを使用している場合はいくつかの制限があります。

次のステップ

まずはチュートリアルから始めましょう。Relayアプリの構築を段階的に説明します。

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

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