キャッシュロジックはfluxアプリのどこに配置する必要がありますか?

ビッグブラインド

前の質問私は、フラックスのアプリでサーバーに更新を送信するための責任者を尋ねました。人々は、アクションがこれを行うべきだと私に言いました。したがって、サーバーからデータをフェッチする場合も同じことが言えると思います。FetchDataアクションがあります。このアクションは、データをフェッチし、ストアが保持するデータをディスパッチします。しかし、そのような場合、キャッシングロジックはどのように機能しますか?

リストが最後に要求された時刻を保存する必要があると思います。StreamsStore内のリストのTTLとfetchStreamsアクションは、サーバーに問い合わせる必要があるかどうかを判断するためにTTLと最後のフェッチ時刻を取得します。

これは正しい方法ですか?ストアとアクションの間にキャッシュロジックを分散させるのは奇妙に思えますが、それを行うためのより良い方法は考えられません。

アンドリュー・クラーク

これは素晴らしい質問であり、私も以前に遭遇した質問です。

Fluxで最も重要なことは、データが常に一方向に流れることです。あなたはすでにこれを知っています—その1つのステートメントには多くの明確な力があり、Fluxについてのほとんどすべての質問に対する答えを保持しているので、私はそれを取り上げます。

アクションはストアにデータを送信するため、ストア内の何かの値をチェックするロジックをアクションに追加すると、フローに対して間違った方向にデータが送信されます。

では、Fluxアプリのどの部分が店舗からデータを受け取るのでしょうか?景色あなたの答えがあります。

キャッシュロジックを保持するビューの考え方は奇妙に感じるかもしれませんが、キャッシュとは何かを考えてください。

  1. いくつかのデータが必要です。
  2. 私はすでにそのデータを持っていますか?そうでない場合...
  3. それを取りに行きます。

ビューハンドル#1。それは非常に簡単です。そして#3は明らかにあなたの行動によって処理されます。しかし、少なくともFluxアプリでは、#2は、ビュー、より具体的にはコントローラービューでも処理する必要があることがわかりましたコントローラービューは、Fluxの見過ごされがちな部分です。おそらく、コントローラーの概念がMVCと非常に密接に関連しているためです。しかし、フラックスにもそれらがあります!FluxのWebサイトから:

コントローラはFluxアプリケーションに存在しますが、コントローラビューです。これは、ストアからデータを取得し、このデータを子に渡す階層の最上位によく見られるビューです。

Reactを使用していると仮定すると、このアイデアはおなじみのように聞こえるはずです。高レベルのReactコンポーネントはコントローラーyですが、低レベルのコンポーネントはより「純粋」です。

これについての別の考え方は、アクションは単なるディスパッチャヘルパーであることに注意することです。(私の記憶が正しければ、Facebookが最初にフラックスを導入したとき、彼らも行動を言及しなかった)あなたは、アクションと呼ばれてきた時点で、あなたはすでに発送には決定を行った。唯一の問題はあるものを、ない場合

これを読み返してみると、これはすべて違いのない区別のように見えるかもしれませんが、主なポイントは、いいえ、アクションでは店舗の状態を検査できないということです。彼らはディスパッチャを介してのみ彼らと通信することができます。それを実際に機能させる方法を見つけるかもしれませんが(これは割り引かれるべきではありません!)、それは慣用的なフラックスではありません。

これが理にかなっていることを願っています!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Blazorアプリにはどのキャッシュ戦略を使用する必要がありますか?

分類Dev

ロジック アプリ アクションのドキュメントはどこにありますか?

分類Dev

n層アプリケーションのWebプロジェクト内のビューモデルはどこに配置する必要がありますか?

分類Dev

n層アプリケーションのWebプロジェクト内のビューモデルはどこに配置する必要がありますか?

分類Dev

クリーンアーキテクチャ-シンプルなビューロジックをプレゼンターまたはビューに配置する必要がありますか?

分類Dev

VIPER / MVP iOSプロジェクトのどこにコアロケーションメソッドを配置する必要がありますか?

分類Dev

DDDアーキテクチャのロールユーザーによるデータのフィルタリングに関連するクエリロジックをどこに配置する必要がありますか

分類Dev

アプリケーションのどの層がセキュリティロジック(許可、承認)を保持する必要がありますか?

分類Dev

ルートに到達したら、Expressアプリのどこにロジックを配置する必要がありますか?

分類Dev

iOSでPhonegapアプリがクラッシュする-ログはどこにありますか?

分類Dev

Androidアプリのアーキテクチャ:パッケージはどのように形成する必要がありますか?

分類Dev

ブラウザのキャッシュを定期的にクリアする必要がありますか?

分類Dev

DTOをクリーンなアーキテクチャのどこに配置する必要がありますか?

分類Dev

Angularアプリは、新しいデプロイ後にキャッシュをクリアする必要があります

分類Dev

ストアアプリケーション用のWindows8の「パッケージキャッシュ」はどこにありますか?

分類Dev

ネットワーク(プログレッシブウェブアプリ)で利用可能な更新がある場合、キャッシュは更新されるかどうかになります。はいの場合、どのように?

分類Dev

例外を常にキャッチする必要がある場合、Javaプログラムはどのようにクラッシュしますか?

分類Dev

例外を常にキャッチする必要がある場合、Javaプログラムはどのようにクラッシュしますか?

分類Dev

プロジェクトのどこに新しいセッションを配置する必要がありますか?

分類Dev

アプリ内購入をWindowsPhone 8にキャッシュする必要がありますか?

分類Dev

Maven プロジェクトのどこに参照ライブラリを配置する必要がありますか?

分類Dev

iPhoneでのアプリのテスト、クラッシュログはどこにありますか?

分類Dev

iPhoneでのアプリのテスト、クラッシュログはどこにありますか?

分類Dev

ngrxストア向けのデータをエフェクトまたはレデューサーに変換することを目的としたビジネスロジックをどこに配置する必要がありますか?

分類Dev

JSレベルでキャッシュをクリアする方法はありますか?ブラウザのキャッシュ/セッションとCookieをクリアする必要があります

分類Dev

SharedPreferencesのデータをアクティビティにキャッシュする必要がありますか?

分類Dev

Windowsですべてのreact-nativeキャッシュをクリアする方法と、ファイルはどこにありますか?

分類Dev

分散キューのバックアップをどのように構成する必要がありますか?

分類Dev

分散キューのバックアップをどのように構成する必要がありますか?

Related 関連記事

  1. 1

    Blazorアプリにはどのキャッシュ戦略を使用する必要がありますか?

  2. 2

    ロジック アプリ アクションのドキュメントはどこにありますか?

  3. 3

    n層アプリケーションのWebプロジェクト内のビューモデルはどこに配置する必要がありますか?

  4. 4

    n層アプリケーションのWebプロジェクト内のビューモデルはどこに配置する必要がありますか?

  5. 5

    クリーンアーキテクチャ-シンプルなビューロジックをプレゼンターまたはビューに配置する必要がありますか?

  6. 6

    VIPER / MVP iOSプロジェクトのどこにコアロケーションメソッドを配置する必要がありますか?

  7. 7

    DDDアーキテクチャのロールユーザーによるデータのフィルタリングに関連するクエリロジックをどこに配置する必要がありますか

  8. 8

    アプリケーションのどの層がセキュリティロジック(許可、承認)を保持する必要がありますか?

  9. 9

    ルートに到達したら、Expressアプリのどこにロジックを配置する必要がありますか?

  10. 10

    iOSでPhonegapアプリがクラッシュする-ログはどこにありますか?

  11. 11

    Androidアプリのアーキテクチャ:パッケージはどのように形成する必要がありますか?

  12. 12

    ブラウザのキャッシュを定期的にクリアする必要がありますか?

  13. 13

    DTOをクリーンなアーキテクチャのどこに配置する必要がありますか?

  14. 14

    Angularアプリは、新しいデプロイ後にキャッシュをクリアする必要があります

  15. 15

    ストアアプリケーション用のWindows8の「パッケージキャッシュ」はどこにありますか?

  16. 16

    ネットワーク(プログレッシブウェブアプリ)で利用可能な更新がある場合、キャッシュは更新されるかどうかになります。はいの場合、どのように?

  17. 17

    例外を常にキャッチする必要がある場合、Javaプログラムはどのようにクラッシュしますか?

  18. 18

    例外を常にキャッチする必要がある場合、Javaプログラムはどのようにクラッシュしますか?

  19. 19

    プロジェクトのどこに新しいセッションを配置する必要がありますか?

  20. 20

    アプリ内購入をWindowsPhone 8にキャッシュする必要がありますか?

  21. 21

    Maven プロジェクトのどこに参照ライブラリを配置する必要がありますか?

  22. 22

    iPhoneでのアプリのテスト、クラッシュログはどこにありますか?

  23. 23

    iPhoneでのアプリのテスト、クラッシュログはどこにありますか?

  24. 24

    ngrxストア向けのデータをエフェクトまたはレデューサーに変換することを目的としたビジネスロジックをどこに配置する必要がありますか?

  25. 25

    JSレベルでキャッシュをクリアする方法はありますか?ブラウザのキャッシュ/セッションとCookieをクリアする必要があります

  26. 26

    SharedPreferencesのデータをアクティビティにキャッシュする必要がありますか?

  27. 27

    Windowsですべてのreact-nativeキャッシュをクリアする方法と、ファイルはどこにありますか?

  28. 28

    分散キューのバックアップをどのように構成する必要がありますか?

  29. 29

    分散キューのバックアップをどのように構成する必要がありますか?

ホットタグ

アーカイブ