我是React的新手,我在组件结构和它们之间共享Websocket方面遇到一些问题。
该应用程序包含类别和产品。初始数据加载将通过Ajax请求完成,并使用websocket保持数据更新。
我的组件层次结构如下所示:
CategoriesList保存类别的状态,而ProductsList保存类别中的产品的状态。
所以我想在CategoriesList和ProductsList中使用相同的websocket,但是要监听不同的websocket事件:category:updated和product:updated。
如何在组件之间共享Websocket,以及在哪里进行初始化?
由于每个类别都有一个ProductsList,这是否意味着product:updated事件将触发多次(每个类别一个)?我猜这对性能而言不是一件好事。
我建议在CategoriesList中初始化套接字连接,然后将连接作为道具传递给子组件。断开连接后,您应该能够使用它来侦听子组件中所需的特定事件。
这是github上一个使用react和socket.io的示例应用程序。套接字在父组件中初始化,然后向下传递。https://github.com/raineroviir/react-redux-socketio-chat/blob/master/src/common/containers/ChatContainer.js
在第9行,初始化了连接,然后在第23行,将其作为props传递了下来。以后,该连接将在子组件中用于接收和发出事件。例如:https://github.com/raineroviir/react-redux-socketio-chat/blob/master/src/common/components/Chat.js
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句