I don’t get what you guys are saying. When you use
connect from react-redux and you don’t specify
pure: false, then that is using shouldComponentUpdate. You can use a top-down approach and use PureComponent on children, or you can do the sideways-in approach, but they are both using shouldComponentUpdate.
Because Redux assumes your state updates are immutable, by default it assumes your component is pure, and uses an implementation of shouldComponentUpdate that will only re-render if its props are different or if the result of running
mapStateToProps is different.
If your connected component’s parent re-renders, or your state changes, your child won’t re-render if its props are the same and the data it gets out of the state is the same.