私は実際にフラックスパターンを研究していますが、店舗。
正確には何ですか?
多くの記事を読んだことがありますが、ドメイン。
これは、api呼び出しまたはバックエンド呼び出しに関連する「抽象的な」部分であることを意味しますか?
私にはあまり明確ではありません。
編集:それはアングルファクトリーと同じものでしょうか?リモートデータを取得したり、ビジネスタスクを作成したり、アプリの状態を保存したりしますか(たとえば、現在のユーザーが接続しています)?
コメント
- 正確にあなたへのリンク'話し合うと役に立ちます。この"フラックスパターン"のことですか? fluxxor.com/what-is-flux.html
- facebook.github。 io /flux/docs/overview.html#content
- フラックスは、すべてのデータが最初にディスパッチャを通過するという制約のあるパブリッシュ/サブスクライブパターンにすぎません。データが逆行しないことを保証します(そして混乱を引き起こします)。 "ストア"、"アクション"などは、システムのコンポーネント、および渡されるデータの別の言い方です。
回答
ステップバイステップで説明させてください
1フラックスとは何ですか?
- パターン
- 集中型ディスパッチャ
- 一方向のデータフロー
- リストアイテム
理由からフラックスと呼ばれています。
フラックスの実装
- Facebookのフラックス
- Alt
- リフラックス
- Flummox
- NuclearJS
- フラックス可能
Fluxとのチャット
React :ちょっとアクション、誰かがこの「SaveCour」をクリックしましたse」ボタン。
アクション:Reactに感謝します。アクションクリエーターをディスパッチャーに登録したので、ディスパッチャーはすべてのストアに通知する必要があります。
ディスパッチャー:コースが保存されることを誰が気にかけているか見てみましょう。ああ!ストアがコールバックを登録したようですので、お知らせします。
ストア:こんにちはコーディネーター!更新していただきありがとうございます!送信したペイロードでデータを更新します。次に、気になるReactコンポーネントのイベントを発行します。
React :Ooo!ストアからの光沢のある新しいデータ!これを反映するようにUIを更新します!
フラックスAPI
register(function callback) –「ディスパッチャーさん、アクションが発生したら実行してください。 -ストア」
unregister(string id) –「コーディネーター、このアクションについて心配するのはやめてください。 -ストア」
waitFor(array ids) –「最初にこのストアを更新します。 –ストア」
ディスパッチ(オブジェクトペイロード)-「ディスパッチャさん、このアクションについてストアに伝えてください。 -アクション」
isDispatching() –「現在、コールバックのディスパッチで忙しいです。」
私たちが頭に浮かぶ疑問は
フラックスはパブリッシュ/サブスクライブモデルですか?
完全ではありません。
2つの点で異なります:
1。すべてのペイロードが登録済みのすべてのコールバックにディスパッチされます。
2。コールバックは他のコールバックを待つことができます
概要
フラックスは単方向データフローのパターンですアクションカプセル化イベントディスパッチャーはコールバックを保持する中央ハブですストアはアプリの状態を保持します多くの実装
コメント
- 私の最初の問題その状態により、アプリケーションはリモートAPIエンティティのさまざまなデータを持つことができます:-/
- 状態が許可するとはどういう意味ですか?変更を発行する場合は常に、Reactビューと呼ばれ、状態変更メソッドと呼ばれます。
- fluxを使用してアプリケーションを構築することを認めます。 APIを扱っているので、データをストア内に保存します。ユーザーがリモートデータを変更した場合はどうなりますか?クライアントとサーバーの両方に違いがあります
- 理由はどこにありますか。すべてのディスパッチャとストアが表示を転送する場合、'アクション更新ビューを直接表示できないのはなぜですか。仲介者がいる理由
- @MuhammadUmer:ディスパッチャーはアプリケーション用であり、ストアはアプリケーション内のコンポーネントに基づいているため、冗長性を排除するために仲介者が導入されました
回答
簡単な例を探す( https://github.com/facebook/flux/tree/master/examples/flux-todomvc/ )、「ストアは、アプリケーション内の特定のドメインのアプリケーション状態を管理します。」つまり、アプリケーションのアスペクトの状態と、それを変更するためのすべてのコードに関するデータが含まれています。 Dispatcherから新しい更新があるときはいつでも、すべてのストアがそれを確認し、それに応じてデータを更新する方法を決定し、データが変更されたことをビューに通知します。例では、ストアには「見えないスレッドリスト」(ディスパッチャが新しいメッセージが到着したか古いメッセージが読み取られたことを通知し、ビューにメッセージスレッドがユーザーに表示される)や「現在の再生時間と
より技術的には、これらはフレームワークの中間層であり、ディスパッチャにコールバックを登録して更新を受信し、データの状態が変化したときにビューに通知します。 (ビューはその後、アクションをディスパッチャーに送り返す可能性があります。)実装する抽象的なインターフェースがあります。各ストアはディスパッチャーにコールバックを登録し、イベントをビューにブロードキャストしますが、各ストアは具体的な方法で特定のドメインを表しているようです。 (反例はありますか?)
回答
ストアは、アプリケーションの状態と複雑なロジックを格納するコードの領域です。それらの理由は、複数のビューが同じデータを使用する可能性が高いが、それらを異なる方法で表示するか、特定のドメインのすべてではないが一部のデータを表示するためです。たとえば、ユーザーがログインすると、名前、姓、電子メール、写真、町、住所番号、電話番号などが表示されます。この情報は個別のビューに表示されます。ビュー間でデータを複製するのではなく、ユーザーのデータを格納するUserStoreと呼ばれる1つのストアを使用できます。これにより、保存されているロジックやデータを変更する必要があるときはいつでも「変更を加えるための1つの場所」が提供されるため、システムが簡素化されます。ストアを使用する理由は他にもたくさんありますが、それが最も明白な理由だと思います。