I’m interested in applying shouldComponentUpdate to our application for performance improvements. Unfortunately, I’ve come across what I think is a slight leakage in the interface, which is that the parent needs to consider whether or not each child needs to re-render when deciding whether or not to re-render. But conceptually, these are two completely different things- the parent may not need to update when the child does. For example, the parent may simply render the child inside a fixed wrapper.
I think that this couples the parent to the children too tightly, and wastes performance as the parent cannot indicate that it doesn’t need to update.
I suggest the introduction of another method, shouldUpdateChildren. If you return false from shouldComponentUpdate, the method is called. If the method returns true, then the children of that component should be considered as needing updates/update checks of their own. This way a component can let any children worry about their own updates and keep the components maximally separated.