2017-06-01 5 views
1

私の以前のプロジェクトでは、通常は1つだけconnect(mapStateToProps, mapDispatchToProps)(App)があります。しかし、私が今日公式exampleをチェックすると、各コンテナにほぼ1つのconnect()があることがわかります。Reduxでは、各コンテナに1つずつ接続されていますか?

複数のメリットは何ですかconnect()

+0

接続機能を使用すると、コンポーネントはストア内のデータにアクセスできます。ストアからのデータが必要なストア(モデル)とコンポーネント(ビュー)の間のちょっとしたコントローラです。この機能は、あなたが望む数のコンポーネントを「プラグイン」することができます。 –

答えて

5

StackoverflowのQ &のReduxバージョンを想像してみてください。質問と投票、回答と投票、追加回答のためのMarkdownエディタ、一番上のプロファイルリンク、右の関連したネットワーク質問など、かなりの要素があります。対応するReduxストアには、アクティブな質問、アクティブな回答、関連する質問、ユーザープロファイル、およびMarkdownエディタのサブオブジェクトを含めることができます。

あなたが述べたように、単一のトップレベルconnectを使用しますが、connectは、各コンポーネントを個別にINGのことパフォーマンスを提供していますカプセル化できます

  • 単一のトップレベルconnectはそのトップを意味レベルAppは、Reduxストア値が変更されるたびに再レンダリングされ、子コンポーネント(再レンダリングするか、shouldComponentUpdateをチェックする必要があります)のそれぞれにそれらの小道具を渡す必要があります。 connectの各コンポーネントを別々に使用している場合は、Markdownエディタで何かを入力してストアのエディタのスライスを更新すると、Markdownエディタだけが再レンダリングされます。
  • 単一のトップレベルconnectは、トップレベルのAppがその下のすべてを知る必要があるため、必要なすべての小道具やイベント自体を渡すことができることを意味します。個々のconnectはカプセル化を提供しています。プロファイルバーは必要な小道具やアクションクリエイターにconnectを渡すことができ、上位のコンポーネントは細かいことを気にする必要はありません。
関連する問題