浏览器会在React中的setState()之后重新渲染吗?

时间:2019-04-28 10:39:50

标签: reactjs

如果我们在React中调用组件的setState()函数,浏览器会重新渲染整个DOM吗?或仅重新渲染该组件?

已更新

我想知道的是,当仅调用一个组件的render()时,浏览器是重新渲染(重新绘制)整个DOM(页面),还是仅浏览器重新渲染该节点。

1 个答案:

答案 0 :(得分:2)

并非如此,setState不仅调用render()函数,而且在setState之后,以下生命周期函数将根据ComponentUpdate返回的内容按顺序运行

如果shouldComponentUpdate返回true(默认情况下为true)。

  1. shouldComponentUpdate(返回布尔值true / false)
  2. componentWillUpdate(如果返回true)
  3. render()(如果返回true)
  4. componentDidUpdate(如果返回true)

它仅触发当前组件及其所有子组件的重新渲染(考虑到对其任何子组件均不执行shouldComponentUpdate),该过程称为 reconcilation