Reactjs 如何不在每次状态更改时更新React组件?

Reactjs 如何不在每次状态更改时更新React组件?,reactjs,websocket,redux,Reactjs,Websocket,Redux,我使用Redux和到服务器的Websocket连接来检索数据。数据量约为200000行,作为Websocket消息一行一行进入我的应用程序。一旦出现一行,我想用Redux将其保存在状态中,我知道如何做,并且工作正常 我预见到的问题是,我不希望每次向状态中添加一行时都更新视图 这样做的想法是,每10秒,或者每10k行更新一个视图 我应该如何使它正常工作?我更感兴趣的是描述的概念,而不是详细的技术解决方案 谢谢 您可以使用组件的shouldComponentUpdate在状态更改时拒绝重新渲染;类似

我使用Redux和到服务器的Websocket连接来检索数据。数据量约为200000行,作为Websocket消息一行一行进入我的应用程序。一旦出现一行,我想用Redux将其保存在状态中,我知道如何做,并且工作正常

我预见到的问题是,我不希望每次向状态中添加一行时都更新视图

这样做的想法是,每10秒,或者每10k行更新一个视图

我应该如何使它正常工作?我更感兴趣的是描述的概念,而不是详细的技术解决方案


谢谢

您可以使用组件的
shouldComponentUpdate
在状态更改时拒绝重新渲染;类似这样的事情-

class MyComponent extends React.Component {
  shouldComponentUpdate(nextProps, nextState) {
    // only re-render when you have data worth 10x rows
    return nextState.arrayOfRows % 10 === 0;
  }

  render() {
    // render logic here 
  }
}

您可以使用组件的
shouldComponentUpdate
在状态更改时拒绝重新渲染;类似这样的事情-

class MyComponent extends React.Component {
  shouldComponentUpdate(nextProps, nextState) {
    // only re-render when you have data worth 10x rows
    return nextState.arrayOfRows % 10 === 0;
  }

  render() {
    // render logic here 
  }
}

一个选项是控制组件是否应该用like更新


另一个选项是定期更新redux状态。例如,与在每条消息/行上添加记录不同,您可以将它们组合成批,然后使用行数据数组运行操作。

一个选项是控制组件是否应使用类似的方法进行更新

另一个选项是定期更新redux状态。例如,与在每条消息/行上添加记录不同,您可以将它们组合成批,然后使用行数据数组运行操作。

您可以使用仅渲染当前屏幕上的行。您可以使用仅渲染当前屏幕上的行。