Facebook Fluxアーキテクチャでは、私が理解しているように、ディスパッチャは1つだけである必要があります。
イベントバスに似ている可能性のあるグローバルディスパッチャを用意することは合理的です。ただし、単一のグローバルディスパッチャを使用するのは悪いことではないかと思いました。
たとえば、すでにいくつかのコンポーネントとディスパッチャを開発しているとしましょう。サードパーティのコンポーネントライブラリをインポートしたいのですが、ディスパッチャは1つしかないため、サードパーティのディスパッチャを直接インポートすることはできません(すでに独自のディスパッチャを開発しています)。
1つの解決策は、サードパーティがグローバルディスパッチャに何らかの動作をアタッチできることです。ただし、それも有害な場合があります。彼らが使用したイベント名は私のものと競合する可能性があるためです。たとえば、彼らは私のものと同じイベント名を使用しており、私は偶然に彼らのイベントをトリガーする可能性があります。
誰かがこれについてアイデアを持っていますか?ありがとう!
フラックスアプリケーションごとに1つのディスパッチャーが必要です。言い換えると、ストア、アクション、および関連コンポーネントの各論理セットには1つのディスパッチャーが必要です。
他のライブラリを使用する場合は、内部でフラックスまたはフラックスのようなシステムで管理できます。その場合は、独自のディスパッチャを使用します。ただし、内部でフラックスまたはフラックスのような実装を使用している場合でも、小道具やコールバックを介して通信するパブリックAPIを表示する必要があります。フラックス内部は露出しないでください。
ほとんどの場合、いくつかの理由から、特定の機能(特定のアクション、ストアなど)を独自のフラックス設定に追加するライブラリを用意することは意味がないと思います。ただし、これが理にかなっている理論的なケースでは、おそらく、既存のシステムに「プラグイン」動作を行う必要があります。理想的には、アクションなどの名前を付けます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加