Re:Why-did-you-update – Warnings about unnecessary React upd...
by Kiro on Wednesday April 19, 2017 @02:29PM
(#14150378)
Why isn't PureComponent just default?
Re:Why-did-you-update – Warnings about unnecessary React upd...
by acemarke on Wednesday April 19, 2017 @02:34PM
(#14150434)
A few reasons:
- PureComponent was only added relatively recently.
- While shallow equality comparisons are relatively fast compared to deep equality comparisons, they still burn CPU. There's also a number of reasons why props could have changed, such as object literals being declared in the parent's `render` method, or the component receiving other components via `props.children`. In those cases, the "pure" comparison will fail every time, and be useless.
- There is no "default" per se. Application components explicitly extend a React component base class - either React.Component, or React.PureComponent.
Re:Why-did-you-update – Warnings about unnecessary React upd...
by vinnymac on Wednesday April 19, 2017 @02:54PM
(#14150643)
It is not a bullet proof solution. It has its use cases, but a couple pitfalls as well. Using PureComponent as a parent to many Component classes is generally not a good idea. If a child depends on a change from `this.context` it will not re-render unless the PureComponent declares `contextTypes`.
This library basically encourages you to use React's "PureComponent", which automatically does that calculation to see if the props have changed for you, thus giving you a huge speedup since only the components that need to update will.