提问者:小点点

理解React渲染


似乎React组件在其父组件渲染时总是运行其渲染方法,即使子组件的状态或道具没有更改,即使子组件没有状态或道具。

这应该是吗?这里面有没有低效的地方?将子组件切换到PureComponent可以解决这一问题,并且子组件不会重新加载。我应该更喜欢纯组件而不是常规组件吗?


共1个答案

匿名用户

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

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

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

这里也是PureComponent的信息

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