React组件渲染条件

73 阅读1分钟

背景

很多文章说state和props变化会触发组件重新渲染,最近在总结useRef的用法,发现ref当作props传入子组件时,子组件并未重新渲染,故研究了下React组件的渲染条件。

结论

react中能够触发重新渲染的只有setState

原因

所谓的props的变化会引起重新渲染只是一个“表象”,因为一旦你使用了props,说明你使用了“存在父子关系的组件”,

父组件中调用setState,会引起子组件的更新, 这个更新从表象和直观上看貌似是props带来的,但是实际上是因为父组件中调用了setState。

所以react中能够触发重新渲染的只有setState;