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