間違った質問をしている可能性がありますので、コメントを残しておいてください。 another developerによって、redux
を使用しているときは、actions
内ですべてのAPI呼び出しを行い、を作成する必要があります。しかし、時にはコンポーネントで直接呼び出しを行うと、TONコードが節約されると思います。このようなことのベストプラクティスはありますか?reduxを使用している場合、コンポーネントでAPIコールを直接行うことを避ける必要があります。
2
A
答えて
3
APIから取得しているデータが1つのコンポーネントでのみ消費される場合は、コンポーネントの一部(またはより良いことにコンテナコンポーネント)として書き込むこともできます。私は、あなたのAPI呼び出しの背後にある論理的根拠は、真実の単一のソースが維持されていることを保証することであると信じています(個人的には、反応/還元方法を使用する主な理由です)。複数のコンポーネントが消費するデータをAPIから取り込む場合は、reduxを使用して同じ状態がreduxによって維持され、それを使用するすべてのコンポーネントに渡されるようにします。
2
これは以前にReduxの作成者、Dan Abramovによって回答されました。Why do we need middleware for async flow in Redux?です。
要約:
それはあなたが同じアクションを実行するさまざまなコンポーネントを持っていますので、あなたには、いくつかのアクションをデバウンスしたい、または自動インクリメントIDのようないくつかのローカルな状態を保つ可能性がある大規模なアプリケーションでは、単に不便ですアクションクリエイターに近づくなど、メンテナンスの観点からは、アクションクリエーターを別々の関数に抽出するほうが簡単です。
関連する問題
- 1. ReduxとReact-Reduxを使用している場合、Reactコンポーネントの状態は必要ありませんか?
- 2. ScalaSignatureを直接使用する必要がありますか?
- 3. angular 2必要がない場合、双方向データバインドを避ける必要がありますか?
- 4. reduxを使用する場合、this.setState()を使用する必要がありますか?
- 5. RESTfull APIの場合はCORSを使用する必要がありますか?
- 6. ドメインモデルオブジェクトでlog4netを直接使用する必要がありますか?
- 7. ローカルストレージを角度2で直接使用する必要があります
- 8. アソシエーションのIDを直接使用する必要がある場合はいつですか?
- 9. Telerikレポートが必要でない場合、データソースの実行を避ける
- 10. MVVMを使用する場合は、UIを有効または無効にするコールをどこで行う必要がありますか?
- 11. ReactJS + Reduxを使用する場合、componentWillReceivePropsとreplacePropsが必要ですか?
- 12. この場合、super().__ init __()を使用する必要がありますか?
- 13. RMOを使用している場合、プッシュまたはプルサブスクリプションを使用する必要がありますか?
- 14. angular2でreduxを使用すると意味がある場合
- 15. ブラウザでJavaScriptを直接使用してビデオをキャッシュする(10mを超える場合があります)
- 16. バイトを必要とするJava APIでC++配列を直接使用する
- 17. ランダムフォレストを使用している場合、ScickitのValueError:max_featuresが「0、n_features」である必要があります
- 18. modリライトを使用している場合は、ProxyPassReverseを使用する必要がありますか?
- 19. 既にstrictを使用している場合は警告を使用する必要がありますか?
- 20. redux-middlewareとredux-thunkを使用した汎用APIコール
- 21. iTunes接続 - 直接アップロードする必要があります
- 22. ++ varを使用する必要がある場合はありますか?
- 23. シングルトンパターンを避ける必要がありますか?
- 24. Firefoxのメッセージを避ける必要があります
- 25. ダウンキャスティングを避ける必要がある場合は、どうすればよいですか?
- 26. データベースを使用していない場合、firebaseでセキュリティルールを変更する必要がありますか?
- 27. react-redux-firebase "このファイルタイプを扱うには適切なローダーが必要な場合があります。"
- 28. WPF MVVM:Prismv4 - これを使用する場合、Microsoft Async CTPを使用する必要がありますか?
- 29. react-redux connectがDumbコンポーネントを引数として直接使用しないのはなぜですか?
- 30. NSStringを通貨としてフォーマットする場合、NSNumberFormatterを使用する必要がありますか?
Reduxを集中管理として使用することになっています。タスクのリストと詳細ビューを独立した状態のコンポーネントとして持つことができ、詳細ビューで「タスクxが完了しました」とリストの「タスクx進行中」の状態に入ることができます。オートコンプリート用のデータを取得するなどの簡単なアクションは、状態ストアの外部で発生する可能性があります。 – aitchnyu
物事がコンポーネントの外にある場合、機能を拡張する方がずっと簡単だということを付け加えたいと思います。たとえば、コンポーネントの読み込み中にアプリケーション全体にスピナーを表示したい場合は、コンポーネント内部から行うのは非常に醜いでしょう。単純に変更されるものを可能にするために、多くのリファクタリングが行われます – Patrick