如果我们在React中调用组件的setState()
函数,浏览器会重新渲染整个DOM吗?或仅重新渲染该组件?
我想知道的是,当仅调用一个组件的render()
时,浏览器是重新渲染(重新绘制)整个DOM(页面),还是仅浏览器重新渲染该节点。
答案 0 :(得分:2)
并非如此,setState不仅调用render()函数,而且在setState之后,以下生命周期函数将根据ComponentUpdate返回的内容按顺序运行
如果shouldComponentUpdate返回true(默认情况下为true)。
它仅触发当前组件及其所有子组件的重新渲染(考虑到对其任何子组件均不执行shouldComponentUpdate),该过程称为 reconcilation 。