principlereactCritical
React.Component vs React.PureComponent
Viewed 0 times
reactcomponentpurecomponent
Problem
The official React docs state that "
Given this, is there any reason why one should prefer
Questions:
Question arose from reading into this medium blog, if it helps.
React.PureComponent's shouldComponentUpdate() only shallowly compares the objects", and advises against this if state is "deep".Given this, is there any reason why one should prefer
React.PureComponent when creating React components?Questions:
- is there any performance impact in using
React.Componentthat we may consider going forReact.PureComponent?
- I am guessing
shouldComponentUpdate()ofPureComponentperforms only shallow comparisons. If this is the case, can't said method be used for deeper comparisons?
- "Furthermore,
React.PureComponent'sshouldComponentUpdate()skips prop updates for the whole component subtree" - Does this mean that prop changes are ignored?
Question arose from reading into this medium blog, if it helps.
Solution
The major difference between
You should go for
If you are using
is there any performance impact in using React.component that we may
consider going for React.PureComponent?
Yes, it will increase your app performance (because of shallow comparison)
I am guessing shouldComponentUpdate() of Purecomponent performs only
shallow comparisons . If this is the case can' t the said method used
for deeper comparisons?
You guessed it correctly. You could use it if you satisfy any of the conditions I mentioned above.
"Furthermore, React.PureComponent's shouldComponentUpdate() skips prop
updates for the whole component subtree" - Does this mean that prop
changes are ignored?
Yes, prop changes will be ignored If it couldn't find difference in shallow comparison.
React.PureComponent and React.Component is PureComponent does a shallow comparison on state change. It means that when comparing scalar values it compares their values, but when comparing objects it compares only references. It helps to improve the performance of the app.You should go for
React.PureComponent when you can satisfy any of the below conditions.- State/Props should be an immutable object
- State/Props should not have a hierarchy
- You should call
forceUpdatewhen data changes
If you are using
React.PureComponent you should make sure all child components are also pure.is there any performance impact in using React.component that we may
consider going for React.PureComponent?
Yes, it will increase your app performance (because of shallow comparison)
I am guessing shouldComponentUpdate() of Purecomponent performs only
shallow comparisons . If this is the case can' t the said method used
for deeper comparisons?
You guessed it correctly. You could use it if you satisfy any of the conditions I mentioned above.
"Furthermore, React.PureComponent's shouldComponentUpdate() skips prop
updates for the whole component subtree" - Does this mean that prop
changes are ignored?
Yes, prop changes will be ignored If it couldn't find difference in shallow comparison.
Context
Stack Overflow Q#41340697, score: 328
Revisions (0)
No revisions yet.