2016-03-25 19 views
9

ReactJSとReduxは、アプリケーションのフロントエンドを開発する限り、新しいパラダイムを提供します。どちらも比較的シンプルなAPIを持っていて、少しの時間を費やした後は技術的な観点からはかなり簡単に把握できます。しかし、設計の観点からは、ベストプラクティスまたは落とし穴に関する推奨事項を見つけることができませんでした。Reduxストアとアクションの設計方法は?

グローバルReduxストアの設計方法に関する推奨事項やアドバイスはどこにありますか?グローバルストアにアプリケーションの状態全体を保持することは、扱いにくいことがあるようです。そうする際に何を避けるべきですか?グローバルな状態を変更するアクションはどうですか?行動データやより多くの具体的な行動に基づいて、異なる行動をとる行動を少なくする方がよいでしょうか?

答えて

8

これはすばらしい質問ですが、その多くが「それは依存している」質問であるため、実際には答えが少し難しいです。 の場合は、redux.js.orgのドキュメントを詳細に確認することを強くおすすめします。そこには、APIを形成したり、重複や一般的な扱いにくさを減らすためのヒントがたくさんあります。

また、私はいくつかの一般的なヒントを追加したい:

  • あなたは通常それほど頻繁にあなたが思うだろうとして状態を必要としません。だから、より多くの小道具と少ない店舗主導の状態で達成できるものがいくつかあります。
  • 大きな「トピック」に分類することは、店舗レベルでのデータ編成に役立ちます。特定のユーザー、認証機関、およびそれ以降のすべての「トピック」が同じ方法でグループ化されるように、店舗の上位レベルのプロパティを提供する場合があります。
  • 場合によっては、少し冗長な状態構造を作成することもありますが、トレードオフは予測可能性と全体的な単純性の向上です。 MVCや双方向の狂気を勝ち越しても、最後に、マイナーポイントとして「グローバル」状態は必ずしもグローバルである必要はありません。
  • ある意味では、単一の状態ツリーはすべての状態が「グローバル」(または少なくとも統一されている)ことを意味しますが、ストアをすべての単一コンポーネントに公開しない限り、実際にはグローバルではありません。うまく分離されていないコンポーネントは、上から簡単にデータを流すことを考え、IMOは実際には「グローバル」である必要はありません。

ほんの少し役に立ちます。

も参照してください:

+1

良い答え。この記事を参考にするには:https://github.com/markerikson/react-redux-links/blob/master/tips-and-best-practicesにあるReact/Reduxのベストプラクティスとガイドラインへのリンク集があります。私は国家管理について議論する人もいると思います。 – markerikson

+0

が回答に追加されました – markthethomas

+0

@markthethomasあなたは以下の問題で私を助けることができますhttp://stackoverflow.com/questions/36211739/invariant-violation-could-not-find-store-in-either-the-context-or-props -of-c/36214384?noredirect = 1#comment60079395_36214384 –

関連する問題