this.forceUpdate是否重新渲染所有孩子?

时间:2017-10-27 12:42:41

标签: javascript reactjs react-native

有关forceUpdate的文件如下:

  

调用forceUpdate()将导致调用render()   组件,跳过shouldComponentUpdate()。这将触发   子组件的正常生命周期方法,包括   每个子节点的shouldComponentUpdate()方法。 React仍然只会   如果标记发生更改,则更新DOM。

https://reactjs.org/docs/react-component.html#forceupdate

这是否意味着组件的子节点也具有名为?

的渲染函数

1 个答案:

答案 0 :(得分:3)

它将“重新渲染”每个在shouldComponentUpdate方法中没有返回false的子节点,但请注意re-rendering !== re-drawing,它只会导致React的diffing算法运行。

并且,只有当差异算法看到当前版本的虚拟DOM与虚拟DOM的先前版本相比时,才会在屏幕上重新绘制UI的特定“已更改”部分。