私はReactを初めて使用しています。コンポーネント構造とwebsocketを共有する際にいくつか問題があります。Reactjs:コンポーネント間でwebsocketを共有する方法
アプリはカテゴリと商品で構成されています。初期データのロードはAjaxリクエストで行われ、websocketはデータの更新を維持するために使用されます。
マイコンポーネント階層は次のようになります。
- CategoriesList
- カテゴリー
- ProductsList
- 製品
- ProductsList
- カテゴリー
CategoriesListはカテゴリの状態を保持し、ProductsListは、カテゴリ内の製品の状態を保持しています。
私はCategoriesListとProductsListの中で同じwebsocketを使用したいと思いますが、websocketの別のイベントを聴いています:category:updatedとproduct:updated。
どのようにコンポーネント間でwebsocketを共有し、どこで初期化するのが適切ですか?
カテゴリごとに1つのProductsListがあるため、製品:更新されたイベントが複数回(各カテゴリに1つずつ)発生しますか?私はこれがパフォーマンス面では良いことではないと思います。
私はリアクションがあなたの実装をどのくらい気にしているかを説明するつもりですhttps://twitter.com/AdamRackis/status/707004963776430080コンポーネントが変更をリッスンできるようにするソケット接続インスタンスを(context?maybe?経由で)渡します。あなたが快適であれば何でも自由に使用してください。リアクションはあなたを制限しません。 – Andreyco
はい、小道具を通すことで共有したり、Fluxのようなアーキテクチャを使用してください。ソケットはどこからでもアクセスできる店舗にあります。 'componentDidMount'のイベントを聞き、' componentWillUnmount'のイベントのためにunlistenします。 Socket.IOなどのWebソケットライブラリを使用していますか? – Aaron
@Aaron私はプッシャーが提供するライブラリを使用しています。com – Fernando