React 是否重新渲染所有组件及其子组件,只要“setState()”为调用?
是的,React 在调用“setState()”后默认触发重新渲染。
虽然React的目标是优化渲染,但它通过在状态发生变化时始终重新运行“render”方法来防止由状态突变引起的细微错误
每个组件都有一个名为“shouldComponentUpdate(nextProps, nextState)”的方法。该方法根据 props 和 state 的变化决定是否重新运行“render”。
默认情况下,“shouldComponentUpdate”返回 true,确保重新渲染发生每次状态或属性发生变化时。
在提供的代码片段中,每当单击文本时,主组件都会将其状态设置为相同的值(“me”)。即使状态没有改变,React 仍然会重新渲染 Main 和 TimeInChild 组件,因为“shouldComponentUpdate”默认返回 true。
您可以通过以下方式优化渲染编写“shouldComponentUpdate”的自定义实现,比较新旧 props 和状态以确定是否需要实际重新渲染。
以上是React 在每次调用 setState() 后都会重新渲染组件吗?的详细内容。更多信息请关注PHP中文网其他相关文章!