Reactjs 了解应用程序中的事件驱动体系结构和状态管理

Reactjs 了解应用程序中的事件驱动体系结构和状态管理,reactjs,rxjs,state,reactive-programming,event-driven-design,Reactjs,Rxjs,State,Reactive Programming,Event Driven Design,大家好,我有一个关于以事件为中心的应用程序中的状态管理的问题 让我们假设一个场景,其中某个人在twitter上发布了一条推文,因此用户应该可以实时看到这条推文。因此,发布tweet或输入评论等都是实时事件;其中,单击按钮从服务器获取数据本质上都是Restful的。实时通信可以通过使用web套接字或服务器发送的事件来实现。现在,脑海中自然浮现的问题是,我们如何为rest和实时通信管理数据(状态管理) Restful资源通常作为一个信息包获取,但服务器发送的事件或websocket将其作为一个信息包

大家好,我有一个关于以事件为中心的应用程序中的状态管理的问题

让我们假设一个场景,其中某个人在twitter上发布了一条推文,因此用户应该可以实时看到这条推文。因此,发布tweet或输入评论等都是实时事件;其中,单击按钮从服务器获取数据本质上都是Restful的。实时通信可以通过使用web套接字或服务器发送的事件来实现。现在,脑海中自然浮现的问题是,我们如何为rest和实时通信管理数据(状态管理)

Restful资源通常作为一个信息包获取,但服务器发送的事件或websocket将其作为一个信息包发送,所谓信息包,我指的是与单个tweet相关的数据。如果我们要向用户显示所有tweet的列表,我们需要将状态更新为以前收到的tweet和传入的tweet,但是这里的状态管理变得非常困难

我看过一些解决方案,比如RxJs,它通常涉及可观测数据,以及redux saga,它涉及生成器。因此,您可以分享您在管理实时数据和restful数据方面的经验和见解


最终目标是如何在实时提要中管理rest和实时数据。请随时纠正我的任何技术错误和/或建议。谢谢你

这并不比轮询和将新数据预先添加到state更复杂,即
tweets=[…newTweets,…state.tweets]
newTweets
可能来自web套接字或再次调用
fetch
。如果套接字一次发送一条tweet,那么它可能是因为我
tweets=[newTweet,…state.tweets]