React Context – Helpful Context Like AdBlock and OS
casesandberg.github.io
casesandberg.github.io
To me this is analogous of calling something `react-props` or `react-render` but all those libraries do are add values inside of your props or render but not actually change the behavior of props or render.
Does this make sense?
Is it because of the lib?
For those not familiar with React, setState() is a function that is used to update mutable state, and it is not a very cheap function, because it propagates the state through all child components, re-renders some virtual DOM, and potentially also causes actual DOM reflowing. Calling this in the scroll handler is what causes the noticeable delay.
edit: it seems like the lib itself does also call setState on scroll [0]. I don't think this is the source of the issue on the site itself, which has additional scroll handlers (for the magic non-scrolling sidebar), but it could cause similar performance problems, depending on how many child components are in your Context.
[0]: https://github.com/casesandberg/react-context/blob/master/sr...
As for me, I just turned on Javascript CPU profiling in Firefox Developer Tools, scrolled a bit, and checked what JS calls were causing the slowdown. Because the unminified source for the website is available on Github, you can quickly find and examine the functions' code directly [1].
[0]: https://chrome.google.com/webstore/detail/react-developer-to...
[1]: https://github.com/casesandberg/react-context/blob/gh-pages/...