That’s only true on the surface: if you chose React, you had to rebuild and relearn everything about once every two years. Averages out to about the same workload as following the latest fad. Maybe more, since refactoring legacy code is 10x harder than building from scratch.
this is just not true. even the worst offenders (looking at you, react-router) do not require to "rebuild and relearn everything". What an unnecessary hyperbole.
- Next.js and Remix, 7 react-router versions (latest with major breaking API changes again)
- Signals and more SSR stuff (I stopped looking at this point)
And this is ignoring all the React Native churn over the years as I imagine not everyone is involved with that.
Even if your particular project didn’t go through all of these migrations, you had to relearn things to be able to work in other/newer projects.
It’s impossible to measure, but having written and used a ton of different frameworks, I really do feel like the overhead of keeping up with the changes was equal to or larger than learning a new one every couple years.
From that list, I believe Server-Side Components is a big offender in terms of complexity.
React Router changing its API so often felt unnecessary too.
I wouldn't call all of that churn though, as I believe most devs only had to deal with a subset of those. Some who got into React in 2019 could be writing the same kind of code today.
I really do have to relearn react-router every time I use it, then I pin it to that version so it doesn't break later. Last time was v6, now there's v7 since Nov '24.
Besides that, React churn isn't too bad. I have to fix builds, but I don't have to relearn everything about React. Unlike Angular.