我刚接触React,对组件结构以及如何在它们之间共享WebSocket存在一些问题。
应用程序包括分类和产品。初始数据加载将使用Ajax请求完成,并使用WebSocket来保持数据更新。
我的组件层次结构如下:
- CategoriesList
- Category
- ProductsList
- Product
CategoriesList保存分类的状态,而ProductsList保存类别内产品的状态。
因此,我想在CategoriesList和ProductsList之间共享同一个WebSocket,但侦听不同的WebSocket事件:category:updated和product:updated。
如何在组件之间共享WebSocket,并在哪里初始化它是正确的位置?
由于每个Category都有一个ProductsList,这是否意味着products:updated事件会多次触发(每个类别一次)?我认为从性能角度来看这并不是好事情。
应用程序包括分类和产品。初始数据加载将使用Ajax请求完成,并使用WebSocket来保持数据更新。
我的组件层次结构如下:
- CategoriesList
- Category
- ProductsList
- Product
CategoriesList保存分类的状态,而ProductsList保存类别内产品的状态。
因此,我想在CategoriesList和ProductsList之间共享同一个WebSocket,但侦听不同的WebSocket事件:category:updated和product:updated。
如何在组件之间共享WebSocket,并在哪里初始化它是正确的位置?
由于每个Category都有一个ProductsList,这是否意味着products:updated事件会多次触发(每个类别一次)?我认为从性能角度来看这并不是好事情。
componentDidMount
中侦听事件,并在componentWillUnmount
中取消侦听事件。您是否使用任何Web套接字库,例如Socket.IO? - Aaron Beall