現在の私の会社には、さまざまな内部アプリケーションが独立して開発され、サイトにiframeされている「ポータル」があります。同じドメイン(クロスドメインではない)でホストされているフレーム間には、多くのチャタリングがあります(通常、状態をチェックしたり、他のアプリケーションが見えるように状態を設定します)。このアプローチはうまくいきますが、最近では、このアプローチが汚いと思われ、さまざまなチームが多くのデータをwindow.top
(世界的に)投げているので、私たちはreduxへの移行を検討しています。 reduxのようなものがwindow.top
の変数を読み込んで設定するよりも一様である複数の "アプリケーション"を "通信する"ことができるか、これはreduxの不適切な使用ですか?単一のレデックスストアを介して通信する複数のリアクションアプリケーション
答えて
フレームのコンテキストが異なります。親ストアを参照する必要があります(例:dispatch
)。window
で店舗を公開してください。それはおそらく無作為な種類の変数よりもクリーンです。
これは本当に独立したアプリだとしたら、バックエンド(Elixir、Nodeなど)から配信されたライブアップデートを介して通信している各フレームのWebソケットを介して、 - タスクのために実行されます。
このようにすると、アプリを分ける際の柔軟性が高まります(たとえば、自分のウィンドウでアプリFoo
を実行したい)、フレーム間通信を共通バスに取得して、それらのメッセージを調べたいものがあれば缶など
はい、実際にはトップレベルのページに共通のReduxストアを持っていて、アクションをディスパッチできます。しかし、異なるiFramesで更新を聞きたい場合は、状態の変化を観察し、iFramesがこれらのイベントに登録できるように、Reduxミドルウェアが必要になります。
これはあなたのコードを少し上手く構築するかもしれませんが、異なるチームがたくさんいる場合、すべての猿が単一のReduxストアにパッチを当てるとコードがかなり素早く汚くなります。
トップレベルのページにpostal.jsなどのさまざまなアプリ間でメッセージを渡して共有データ用の簡単な名前空間のオブジェクトストアを作成し、それをミスから守るためのpub/subライブラリをお勧めしますシームレス不変ライブラリで使用します。
このアプローチはうまく動作しますが、最近、我々は、このアプローチが汚いとさまざまなチームが、(グローバル)window.topに多くのデータの を投げているようだと 再来への移行を検討しています。
この点に着目すると、コードをクリーンアップするか、レフィックスを実装することを検討します。私は一般的に何かをグローバルに保存したり、ウィンドウに保存したりしません。チームのあなたの会社はあなたがReduxのを学びたいしばらく
- 場合、私は非常に実装Reduxのを推薦するでしょう
(それは本当にクールだ)
- 誰かがすでによく知っています還元剤あり
なぜ還元ですか?
- あなたが倍数ビューまたはフレーム間で状態を追跡している場合、それはそのすべての状態の真実の単一ソースの利用
- スーパーモジュラーやチーム環境で作業する喜びに最適です
あなたの説明によると、あなたの還元はあなたの問題の完璧な解決策であるようです。
Reduxはかなり簡単ですが、テクノロジースタックの残りの部分に応じて、reduxでミドルウェアを使用する必要があります。
- 1. 複数のオブジェクトへの単一通知?
- 2. 単一送信ボタンを使用して複数のドロップダウン値を送信
- 3. エンティティフレームワークコードファースト - 共通エンティティなしの複数のテーブルへの単一エンティティ
- 4. 複数のフォームを単一のサブミットで送信する方法
- 5. 複数のメソッドを複数のデータテーブルにレンダリングして、単一のフラスコルーティングで単一のhtmlに投影する
- 6. 複数のwebジョブを介した通信としてServicebusを効率的に使用する方法
- 7. Sync FrameworkのカスタムプロバイダがWCFを介して通信する
- 8. ORMLiteのDAOを介してDBと通信するテストクラス
- 9. ループを介してフォームで複数の値を送信
- 10. Railsで単一の送信ボタンを使用して複数のオブジェクトを作成
- 11. Perfectを使用して複数のサーバー間で通信する
- 12. WPF複数のコンボボックス通信
- 13. oracle sqlの単一行で複数の行が共通
- 14. 複数のUDPメッセージを単一の謝礼者に送信
- 15. 複数の行を単一の行として返します
- 16. 複数の単一フィールドインデックス対複数フィールドインデックス
- 17. コンピュータをUSB通信仲介者として使用する
- 18. Angular2 - 親と子がサービスを介して通信する
- 19. リスナーを介してアクティビティとViewPagerAdapterの間の通信
- 20. Javaでインターネットを介した通信
- 21. Javaソケットを介したInterServer通信
- 22. アプリが複数の通知を送信しています
- 23. Facebookメッセンジャーボットの単一のポストバックで複数の返信メッセージを送信
- 24. float3/vec3を単一性のプロパティを介してシェーダに渡す
- 25. SqlNotificationEventはデータベース内の単一の挿入でも複数回通知します
- 26. Dokanプラグインが単一注文の複数のEメールを送信します
- 27. 複数のデプロイヤー単一のコンテンツ配信データベース(ブローカーDB)
- 28. 複数のエントリ単一セル
- 29. MongoDB複数の単一インデックス
- 30. 複数のジャー、単一パーシスタンスユニットソリューション?
reduxを実装しても、別々のアプリケーション間で通信するという基本的な問題は解決されません。あなたが収納している窓に1店舗しか持っていないが、その店舗にはまだ "競争"があります。 –