2016-06-26 10 views
25

reduxとrelayに基づいて記事/文書の本数を読んだことがありますが、この2つのライブラリがどう違うのですか?
この2つのライブラリの利点と欠点は何ですか?
GraphQLのリレーでの正確な役割は何ですか?
CRM/ERPのようなエンタープライズデータ駆動型アプリケーションに適したライブラリはどれですか?の違い:ReduxとRelay

答えて

46

どちらもFlux実装で、アプリケーションの状態を管理するFacebookフレームワークです。

  • Reduxの:アプリケーション内の状態管理を扱うことができます一般的なJavaScriptライブラリ。 Reduxは反応に依存せず、 を任意のライブラリで使用できます。 react-reduxライブラリーを使用して、反応物を還元物と容易に組み込むことができる。 。アプリケーション状態 が単一のストアに配置されている場合、各コンポーネントは状態 にアクセスでき、アクションをディスパッチすることによって状態を変更することもできます。 Reduxは のデータを取り出すことはできませんが、手作業で行うことができます。 サーバからのデータを ストアに取り込むアクションを作成するだけです。

  • リレー:リアクションのためにfacebookによって作成され、内部でも使用されます。 Relayは、両方とも単一の ストアを使用している点でreduxと似ています。主な違いは、リレーはサーバーから発信された状態 のみを管理し、状態へのすべてのアクセスは、 GraphQLクエリー(データの読み取り用)と突然変異(データ変更用)を介して使用されることです。 リレーは、あなたのためにデータをキャッシュし、 によってデータの取り出しを最適化します。リレーは オプティミスティックアップデートもサポートします。つまり、サーバの 結果が到着する前に状態を変更します。

GraphQLは宣言して構成可能なクエリを使用してWebサービス・フレームワークとプロトコルで、フェッチを超えるとフェッチ下のような問題を解決し、RESTに代わる有効な候補であると考えられています。
GraphQLはリレーに依存しません。逆にリレーはgraphqlに依存します。 Graphqlは、他のすべてのデータフェッチが実行されるのと同じ方法で使用することができます。

あなたが見て分かるように、redux over relayの主な利点は、データのフェッチがすでに行われており、そのために非常に最適化されていることです。
一方、クライアントの特定の状態を管理することはできませんが、ほとんど必要ありません。

また、IMO Relayは習得して実装するのが難しいですが、最終的な結果はよりよく最適化されますが、小規模なアプリケーションでは、

+0

:CRM/ERPなどのエンタープライズデータ駆動型アプリケーションに適したライブラリはどれですか? –

+3

Relay。データフェッチと管理の面倒な部分を処理するためです。また、私はリレーが既に私の中で「企業」の視点を持っていると言いたいと思いますが、レフィックスはより軽くなるつもりです。しかし、これらは意見だけです。 –

+0

@GershonPapiあなたがリレーで行く小さなアプリのために?私はあなたが還元を意味すると思う。 – Timmerz

関連する問題