Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 限制React renders()响应流数据的最佳实践_Javascript_Reactjs_Websocket - Fatal编程技术网

Javascript 限制React renders()响应流数据的最佳实践

Javascript 限制React renders()响应流数据的最佳实践,javascript,reactjs,websocket,Javascript,Reactjs,Websocket,我正在创建一个React应用程序,向用户显示来自websocket的一些流式数据。来自websocket的数据流的速度通常比我的应用程序完成完整渲染的速度快(为了回答这个问题,我们假设每秒000次的小数据更新填充一个表) 我在上一个React应用程序中处理此问题的方法是使用间隔,如下面的简化代码所示: MyApp类扩展了React.Component{ 建造师(道具){ 超级(道具) this.setState({latestData:{}}) } componentDidMount(){ th

我正在创建一个React应用程序,向用户显示来自websocket的一些流式数据。来自websocket的数据流的速度通常比我的应用程序完成完整渲染的速度快(为了回答这个问题,我们假设每秒000次的小数据更新填充一个表)

我在上一个React应用程序中处理此问题的方法是使用间隔,如下面的简化代码所示:

MyApp类扩展了React.Component{ 建造师(道具){ 超级(道具) this.setState({latestData:{}}) } componentDidMount(){ this.ws=新的WebSocket('wss://veryfaststream.com') ws.onopen=()=>{console.log('Socket Open!')} ws.onmessage=(消息)=>{ this.latestData=message.data } this.intervalId=setInterval(()=>{ this.setState({latestData:this.latestData}) }, 200) } render(){ 返回 } 组件将卸载(){ this.ws.close() clearInterval(this.intervalId) } }
我读过一些其他的解决方案,例如使用lodash去边界,或者实现
shouldComponentUpdate()
来限制重新渲染,但是在遵循上述模式之前,我真的很想知道最佳实践方法是什么。如果github上有一些实现的话,请为我指明方向。谢谢。

最佳做法是遵循任何标准做法来限制适用于特定用例的函数调用(即函数更新反应状态)。如果您不关心任何中间数据,那么简单地限制
onMessage
处理程序就足够了。