了解React Rendering

时间:2017-01-16 16:40:35

标签: performance reactjs render

似乎React组件在其父组件呈现时始终运行其render方法,即使子组件没有更改状态或props,即使子组件没有状态或道具。

这应该是吗?这有什么低效率吗?将子组件切换为PureComponent可以修复此问题,子组件不会重新启用。我应该支持PureComponents而非常规组件吗?

1 个答案:

答案 0 :(得分:1)

如果您想要控制使组件重新渲染的内容,那么您应该使用shouldComponentUpdate,它可用于所有反应组件,除非它们是无状态功能组件。 PureComponent基本上自动使用shouldComponentUpdate并对过去和当前道具/状态进行浅层检查,如果有变化,它将重新渲染。

有时您可能正在处理更复杂的数据结构,并希望自己控制shouldComponentUpdate,在这种情况下,只需遵循此处的生命周期方法说明。

https://facebook.github.io/react/docs/react-component.html#shouldcomponentupdate

这里也是PureComponent的信息

https://facebook.github.io/react/docs/react-api.html#react.purecomponent

相关问题