First, React isn’t neccessarily supported by hype anymore. Its become nearly an industry standard for any situation where you want to render a UI using web technologies. That’s React’s bread and butter, and it doesn’t go much beyond that.
There are subjective and objective reasons. For example, liking or not liking JSX is mostly subjective reasoning. This doesn’t mean it isn’t right or wrong, only that its mostly up the individual to decide.
I’ll focus primarily on the objective reasons why React has become the most popular, and why it will stay the most popular option.
The primary driver of most of the objective reasoning is actually company driven, not developer driven. Namely companies as a whole get to pick their tech stack. This automatically leans into picking “industry standards”, most of the time unless there is a distinct reason to pick something else. This is key, as the three major frameworks are essentially interchangeable from an end user perspective.
Objective reason #1:
Its the most popular.
This might be kind of obvious, but by picking the most popular option, you automatically get a bunch of advantages. Namely, the biggest ecosystem, the most developers, and the most support from the community. Picking a smaller/less popular option limits all of these, and thus increases risk for the business.
Objective reason #2:
Its only focused on the UI aspect.
Its agreeable Angular is very opinionated, as its goal is to make as many choices out of the box for you. You could change it out to build your own solution, but most of the time it makes sense to stick with what is already given, unless you have a clear reason to do something else.
React on the other hand is actually very limited in scope, which is one reason why it labels itself as a library and not a framework.
This is an objective reason for companies to pick this framework because your actually picking a “small thing”. Its true you could warp any of the major frameworks however you see fit, but React is the most flexible in that area since it only focuses on 1 aspect of the entire stack. Companies can decide their own risk in regards to using it. Use Redux, or make your own, or don’t use Redux, or even use React on the server-side, its all mostly up to the company on which route they want to take based on their needs.
Objective Reason #3
It has the best ecosystem.
Due to the above two reasons, React ends up with the biggest, and most expansive ecosystem. If you look for any front-end technology, odds are it has some relation to React either directly or indirectly. Not only is this because React by itself doesn’t actually do much, but because you can easily build “around React” for multiple use-cases.
This also means you end up with “spin-off” technologies that leverage React, such as Next.js. Any front-end technology will provide the best support for the most popular options, thus making React support paramount most of the time.
Finally, this leads to the single most important reason about the “hype” and answers why there are mostly React jobs.
Its the least risky option for a business.
Simply put, a company only cares about picking the best/safest/most-standardized technology most of the time. Unless there is a specific reason or incentive to pick something else, most will just go with whatever is the standard.
Its very hard to argue against any of the three front-end framework because ultimately all of them compile down to HTML/CSS/JS, so how you get there is generally not as important as the end result which usually ends up being nearly exactly the same.
This is further drawn out as the differences between the frameworks is actually rather minimal:
- All of them use component based setups
- All of them need to be compiled down to target HTML/CSS/JS
- All of them can support similar bundlers, webpack/esbuild/astro/etc
- All of them provide some sort of state management out of the box
- All of them support modern JS stack technologies, such as SCSS, TypeScript, and modern syntaxes
I’d reconsider “picking a side” and think more about seeing the similarities between all the options. React has the most options and is the most popular, almost because its the most popular.
Angular’s CLI provides direct code migration through all major and minor versions out of the box via
ng update (ref). Yes there are breaking changes made in the framework in some versions, but I actually don’t know of a framework with first-party migration support. If Angular had any single strong-point, its the first-party tooling and support. I’ve used multiple frameworks, and this level of support is really are. It really is an industry leader in that space. Its also worth keeping in mind the open-sourced version of Angular is the “diet” version, as the internal version used in Google actually uses an entirely different builder.
Its also worth pointing out Vuejs is actual somewhat a spiritual cousin of Angular.
Angularjs (or Angular 1) is currently unsupported, but Vuejs took a lot of inspiration from Angularjs, and made it better. Angular doubled down on a number of aspects, such as rxjs, TypeScript, that weren’t in Angularjs, but both frameworks come from a similar mindset.
I’m unsure if dinging React for being unopinionated and then dinging Angular for being opinionated is reasonable. You could bypass Angular’s out of the box solution for http requests and use whatever you’d like. Its true Angular is opinionated in a bunch of facets, but it is also the most “open” and expandable of the three due to not being focused on the UI at all. As the docs say its focused on “application development”, the UI is just one element of such architectures.
Its to the point there are people have experimented writing Angular using
jsx. However most of these efforts die out due to the workload required, some do stick around such as Nrwl’s nx technology which took Angular’s tooling and super charged it to support other frameworks.
This is the risk taken with picking a less common framework/stack. Unless there is a clear-cut reason for “not sticking with the group”, your inheriting risk. This risk is starting to show.
At the same time, as a Vue developer you could leverage this fact and become more of an “expert” and be able to bypass supply and demand as one of few who could satisfy demand. This might not work though, because ultimately as I mentioned before the difference between switching between React and Vue (or even Angular) isn’t actually that much of a change for better or worse.
PS. I’m an Angular developer who moved to learning/using React for work. The jump was very minimal, I’m sure you could pick up any of the other frameworks if you have a good amount of experience with Vuejs.