背景
很多文章说state和props变化会触发组件重新渲染,最近在总结useRef的用法,发现ref当作props传入子组件时,子组件并未重新渲染,故研究了下React组件的渲染条件。
结论
react中能够触发重新渲染的只有setState
原因
所谓的props的变化会引起重新渲染只是一个“表象”,因为一旦你使用了props,说明你使用了“存在父子关系的组件”,
父组件中调用setState,会引起子组件的更新, 这个更新从表象和直观上看貌似是props带来的,但是实际上是因为父组件中调用了setState。
所以react中能够触发重新渲染的只有setState;