【发布时间】:2016-07-07 07:36:55
【问题描述】:
我是 React 新手,在组件结构和在它们之间共享 websocket 方面遇到了一些问题。
该应用由类别和产品组成。初始数据加载将通过 Ajax 请求完成,并将使用 websocket 保持数据更新。
我的组件层次结构如下所示:
- 类别列表
- 类别
- 产品列表
- 产品
- 产品列表
- 类别
CategoriesList 保存类别的状态,ProductsList 保存类别中产品的状态。
所以我想在 CategoriesList 和 ProductsList 中使用相同的 websocket,但监听不同的 websocket 事件:category:updated 和 product:updated。
如何在组件之间共享 websocket 以及初始化它的正确位置在哪里?
由于每个类别都有一个 ProductsList,这是否意味着 products:updated 事件将触发多次(每个类别一次)?我想这在性能方面不是一件好事。
【问题讨论】:
-
我将使用 tweet 来描述 React 对您的实现的关心程度twitter.com/AdamRackis/status/707004963776430080 我将传递套接字连接实例(可能是通过上下文?!)这将允许组件监听更改。随意使用任何你觉得舒服的东西。 React 不会限制你。
-
是的,您可以通过 props 传递它来共享它,或者使用像 Flux 这样的架构,其中套接字位于可以从任何地方访问的商店中。监听
componentDidMount中的事件并取消监听componentWillUnmount中的事件。您是否在使用任何 web-socket 库,例如 Socket.IO? -
@Aaron 我正在使用 Pusher.com 提供的库
标签: javascript reactjs websocket