We've hit peak React.
I would go farther... React is in the same place jQuery was circa 2009-2013.
Once something is so ubiquitous that it starts becoming synonymous with front-end programming, people start to think it is the cause of their problems. So they look for and build alternatives... Which is how we got the last decade of "Whack-A-Mole: Framework edition"
I'm interested to hear more as I haven't been in the industry for that long: do you have objective reasons for thinking React will go the way of jQuery, or are you basing it more on previous cycles of hype->obscurity?
My general thoughts are that just because something happened a certain way in the past, it doesn't necessarily mean it'll play out exactly the same way again (although it may, of course).
The only clear challenger to SPAs/React I currently see is WebAssembly. That would be a paradigm shift in the way that React was to jQuery. However, I think even WASM won't eat at React's market because WASM will typically be used for games (it'd be over-engineering for most other purposes).
The final piece I see is economic. The longer React remains in demand, the more companies and startups build their entire apps and tooling around it. With all these vested interests, it'll be extremely hard for a challenger to match React's ecosystem in the coming years.
Just my thoughts though, happy to be proven wrong
First: SPAs and React are not synonymous. I do need to make clear that the SPA design pattern will probably never go out of fashion, but Angular, Vue and React (with the appropriate routing libraries added in) all provide a SPA experience.
I'm definitely basing my opinion on previous cycles, but there ARE objective reasons and parallels.
JQuery is still a powerful library that is still in use today (As we see in these comments). I feel certain that will hold true for React 10 years from now.
JQuery saw its "necessity" eroded by the evolution and adoption of its central features into the W3C spec. The things that forced you to need jQuery became native JS.
React is beginning to see that as well. Web Components eliminate the need for React as a means to separate concerns in your code. Just as document.querySelector and the DOMContentLoaded event replaced core jQuery functionality, you're starting to see Svelte and Stencil fill the component gap by offering solutions using spec-compliant web components (Stencil is WC first vs Svelte as an optional compile-target). You COULD do without either, but they give compile-time convenience and abstraction of boiler-plate that is impossible to ignore.
That's my biggest "objective" idea about React and the other current frameworks. The idea for these frameworks was born over 10 years ago with Angular. It was a reaction to jQuery and how, no matter how easily you could traverse the DOM, there was no way to create a simple custom HTML-tag that could easily import a new component. It wasn't part of the spec, so people created it. Now, a decade later, it IS part of the spec, but people really like the habits they've developed over the last decade haha.
That said: The EXACT same things about "economic" dominance have been said about JQuery, PHP, Java, C, FORTRAN, and a million other languages/frameworks. I just don't think it holds-up in the face of history is all. Just like there is a ton of work in the industry today and for many years to come in Java and PHP, I think React will see the same slow decline over the next decade that jQuery, Java and PHP have. (Note: Java's decline from number one by an astronomical margin to sometimes number 2 is STILL a decline... don't @me LOL)
That's just my (unpopular) read on the situation. I won't feel a bit sheepish if I look back on this post a decade from now and React is widening its dominance over the market and no one learns vanilla JS anymore haha. I just don't think its "necessity" now is anywhere near the same as it was in 2015 or even 2019, and that will cause a decline in use in the next few years as people start getting tired of using the new "hooks" or other FOTM they decide to introduce as a reaction to new innovation in the marketplace.
Thanks a lot for the great reply - that was very insightful and I definitely learned something. Particularly the part about web standards: I'd heard it before (how frameworks are basically a faster way to iterate with proposed web standards), but hearing it again helps me see the bigger picture.
I still think if we were to see a decline in React usage it would be a long way off. But your comments highlight the importance of diversifying one's skillset and keeping up-to-date with other technologies, so thanks for that
Another reason React will decline is the baseless assumption that "DOM is slow". There will always be something faster that comes along.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.