2017-05-17 7 views
0

この質問をするのが適切なウェブサイトであるかどうかはわかりませんが、私はそれを行っていきます。React redux application connect()関数

ReactとReduxでWebアプリケーションを構築するときに、connect()関数をどのように使うべきですか? 1つのコンテナを、その小道具を子どもに渡す最上部の店舗に接続するか、小道具を子供に渡す店舗に複数のコンテナを接続するだけですか? 私は店に接続されている1つのコンテナしか持たない小さなWebアプリケーションを構築しています。したがって、すべての小道具を渡します。

私はどのソリューションが最適かと疑問に思っていました。複数のコンテナが接続されている場合、アプリのアーキテクチャをどのように構築するのでしょうか?

ありがとうございます。 http://redux.js.org/docs/faq/ReactRedux.html#react-multiple-componentsでReduxのよくある質問を引用

+0

最高のアイデアではなく、あなたがコンポーネントを言うとき、あなたは本当にコンポーネントを意味するか、ない親 –

+0

@ShubhamKhatriからそれらのすべてを伝承することよりも、ストアに接続することがストアへのアクセスを必要とするすべてのコンポーネントを持っているだろうコンテナのみ?コンテナ内のコンポーネントは、コンテナだけでなくストアにも接続されますか? – petithomme

答えて

1

早期Reduxのドキュメントは、あなただけのコンポーネントツリーの最上部付近にいくつかの連結成分を持つべきであると助言しました。しかし、時間と経験によれば、一般的に、すべての子孫のデータ要件について多くのことを知るためには少数のコンポーネントが必要であり、混乱した数の小道具を渡すよう強制されます。

現在の提案のベストプラクティスは、「プレゼンテーション」または「コンテナ」コンポーネントとして、あなたのコンポーネントを分類し、それが理にかなってどこ接続されているコンテナコンポーネントを抽出することである。

は、「一番上に1コンテナコンポーネント」を強調Reduxの例では間違いでした。これを極秘にしないでください。プレゼンテーションコンポーネントを別々にしてください。便利なときにコンテナコンポーネントを接続してコンテナコンポーネントを作成します。同じ種類の子どものためのデータを提供するために、親コンポーネントのコードを複製しているような気がする場合は、コンテナを抽出する時間をとってください。一般的に、親が子どもの「個人的な」データや行動についてあまりにも多くのことを知っていると感じるとすぐに、コンテナを抽出する時間。

実際、ベンチマークでは、接続されたコンポーネントの数が多いほど、一般に接続されているコンポーネントの数よりもパフォーマンスが向上することが示されています。

一般的に、わかりやすいデータフローとコンポーネントの責任範囲との間のバランスを見つけることを試みます。

+0

多くのことを明確にしています。私はいくつかの古いチュートリアルで失われてしまったと思う。これを明確にするために、私は2つのページを持っていると言う:** Views **と** Settings **例えば。両方の内部には、_todoリスト_のようなコンポーネントがあります。これは、アクションをトリガすることができます。 _ViewContainer_と_SettingsContainer_のみがストアに接続されるのか、それともコンポーネントも同様ですか? – petithomme

+0

これはあなた次第です。個々のコンポーネントを店舗に接続することは全く問題ありません。さらなる議論については、私のブログ記事[実用Redux、第6部:接続リスト、フォーム、およびパフォーマンス](http://blog.isquaredsoftware.com/2017/01/practical-redux-part-6-connected-lists)を参照してください。 -forms-and-performance /)である。 – markerikson

+0

今は申し分なく、コンテナを店舗にのみ接続しています。それは今のところうまく動作します。ありがとう – petithomme

関連する問題