如果React在重新渲染之前比较(浅)上一个状态和下一个状态,它将减少很多渲染,这有助于优化性能。
根据React docs,在调用setState方法时,React始终渲染组件及其子组件。 React应该聪明地处理组件及其子组件的不必要的重新渲染。
答案 0 :(得分:2)
React可以与不可变或纯Javascript数据一起使用。而且React确实提供了生命周期挂钩(shouldComponentUpdate
),您可以选择使用该挂钩来防止重新渲染。但是,对于纯Javascript数据而言,有时可能需要比较数据并决定是否重新呈现数据,这是一种开销,因为可能会发生这种情况,以便检查数据更改,您可能需要对数据进行深度比较,然后再进行比较。在大多数情况下需要重新渲染的情况下,必须在比较状态之后做出反应来更新DOM,这可能比简单的虚拟DOM扩散和更新要昂贵。
话虽如此,您可以在快速决定是否使用PureComponent
和/或ImmutableJS
数据重新渲染之间做出权衡。