DEV Community

Discussion on: React Context API Made Simple – The practical guide (Updated)

 
jamesthomson profile image
James Thomson

I don't have much experience with Angular (except AngularJS - shudder), but before this React project I used Vue for a few years with Vuex and never ran into such issues. Sure it required more wiring, but it was reliable and did exactly as state management should; give you the current state without any side effects.

Thread Thread
 
wkrueger profile image
wkrueger

I'd say selective rendering with contexts is painful bc a context will always rerender all of its consumers if the reference of the value passed to Provider changes (=== comparison).

So, for instance, passing an object built on every render will certainly trigger a mass re-render.

To fix this one has to break the data into multiple context providers.

If you inspect a redux application (with react dev tools) you may notice DOZENS of context consumers generated by the library wrapping an element.

Thread Thread
 
jamesthomson profile image
James Thomson

I'd say selective rendering with contexts is painful bc a context will always rerender all of its consumers if the reference of the value passed to Provider changes (=== comparison).

Exactly right. It's the side effects of something updating in a context and that waterfall effect that makes them so painful.