Moh*_*ziz 3 javascript sockets socket.io reactjs redux
我正在使用react,redux和socket.io开发一个聊天应用程序。众所周知,redux对将某些状态传递给深层和嵌套的组件非常有帮助。我喜欢这个想法,将一些道具存储为redux状态,并将其传递给一些高度嵌套的组件。我正在使用socket.io-client库创建套接字对象。
我需要将创建的套接字对象传递给一些高度嵌套的组件,因此,我正在考虑在redux状态下创建套接字对象,以便可以在嵌套的组件上轻松使用它。
这是一个好方法还是应该做其他事情?
不,这不对。
我们最近在Redux应用程序中添加了关于Websockets应该存放在哪里的Redux FAQ条目。引用该条目:
出于以下几个原因,中间件是Redux应用程序中诸如websockets之类的持久连接的正确地方:
- 在应用程序的生命周期中存在中间件
- 与商店本身一样,您可能只需要一个给定连接的单个实例,整个应用程序就可以使用该实例
- 中间件可以查看所有已调度的动作,也可以自己查看调度的动作。这意味着中间件可以采取调度的动作,并将其转换为通过websocket发送的消息,并在通过websocket接收消息时调度新的动作。
- Websocket连接实例不可序列化,因此它不属于存储状态
| 归档时间: |
|
| 查看次数: |
875 次 |
| 最近记录: |