I don't have much of an opinion on React as a library, although they do use it for our web frontend at my work. However something I noticed in the past when I was doing some web dev work out of AUS was that some websites would have incredibly buggy behavior. Keep in mind this was around 10 years ago so some things might have changed. After doing some debugging it turned out that some of the libraries were fairly large, and they didn't have co-located CDN's in the area. The specific ones in that were jQuery. That caused some of the JS libraries to not fully download, or just some of them to time out.
That's a mostly fixable problem with having something like a pipeline that minifies the libraries and has them being downloaded from somewhere closer to your users, or putting them on a better CDN, but a lot of people don't have the time/option/money to do that. It was pretty obvious in that instance since a lot of that was wordpress development at the time and things like plugins/extensions usually don't bother. When I was doing similar development in the US I never saw any of that kind of behavior since so many libraries at the time were hosted on the West Coast where I lived. Also most developers I know aren't super resource limited on their hardware (desktop/laptop or mobile), which might be a factor.
I'm not sure if this is what people are referring to, but just something to consider.
That’s a good point. I guess I am privileged to live in a well connected area in the states.
One example: once I tried to buy a train ticket and it was impossible due to my outdated iOS.
I'm talking about 2-5 input forms, autocomplete, and calendars, things that can be done even with HTML 4.0, with zero front-end frameworks, and that will work this way for decades. However, there was React producing some error because of my old browser, and preventing me from buying the ticket.
I believe vital services, such as public digital platforms, must have the lowest possible system/browser requirements and work on any possible device, even if I use a 10-year-old device.
While there are knowledgeable people that dislike React, and there are things to criticize about React (what normal people would call trade-offs), A large swath of React hate comes from "Fullstack Engineers" that are actually Backend engineers.
They barely do Frontend, and when they do, they have no idea how the underlying tech works. They literally don't know what React is. They don't know what it does. They don't know it's not just for SPAs. They think it includes a bunch of shit that it doesn't. They hear React and think "I don't know what mounting is, but I programmed once in NextJS and it was fucking awful".
So we get seething comments from people who get frustrated with a build system, or with "breaking changes" even though old versions of React work the exact same way. It's a client-side rendering library, why do you care about breaking changes? Or we get people swearing that Vue is magnitudes better even though they both work roughly the same with minor differences.
And I get frustrated, because I know these people otherwise would've slapped JQuery on a website and written a horrific CSS selector that will break in 4 days when someone else tries to restructure the HTML. Because we see abuse most visibly in popular tech.
I use it all at work. JQuery, Vue, React, Svelte, HTMX. I can't say I'd shy away from any of it, but I can't say I have a massive preference either.
Amen. If you could spin a turbine with the ire directed towards frontend engineering on this forum alone, we could retire the sun.
I think there's a defensive quality to it. It was at one point an overwhelming meme that writing JS was somehow not "real programming", that writing web apps is "easier", and lots of engineers who should otherwise know better internalized that and then apparently froze in time. Then when they try to hack it for themselves and encounter any resistance at all, they get edgy and form ignorant opinions that boil down to "I hate React because I got frustrated and React was there".
Turns out the skill transfer does work in reverse though. On the backend your code often only has to run in one environment, with machine specs you get to choose, and responses for most things are fine measured in seconds. Unbelievable luxury.
React is, for its utility, an incredibly minimal library. It's hard to point to anything in it that it really shouldn't be responsible for. Most of the problems it solves with that minimal layer are among the very first problems you run into trying to build any serious web application no matter the stack or structure. Even if you don't use React, you'll either write bespoke spaghetti UI update code or more likely you'll end up with the pieces of something that sure as hell looks like React if you squint.