So which is better - Angular, Vue or React?
Spoiler alert: It really doesn’t matter which language, framework or library that you choose to learn. If you want to be a great programmer, you need to change your mindset and stop thinking in terms of which one is best.
Great programmers think instead in terms of pros and cons, for their needs:
These are the questions you should ask, and being myopic and declaring one library/framework to rule them all is only said by people that don’t know their history, or can't be bothered to learn a new tool.
For example
jQuery, Backbone, AngularJS (now just Angular), were all useful when they came out. They provided 10x benefit to what there was before, but eventually they all evolve and move on as the community grows, web platforms change, and user preferences shift.
In the end, each of these 3 allow you to build rich front-end applications. In general, neither one is significantly better than the other, and each have their own strengths and weaknesses.
If we break each of them down:
Angular is the entire kitchen that gives you all the tools necessary for you to build the meal that is your web app. If I am a bank with lots of developers, I like Angular to keep everyone working in the same pattern.
React is the oven. You most likely will need more tools to bake that cake, but it allows you the flexibility to pick and choose what tools you want based on your needs. If I’m a tech company with strong senior developers that can make good decisions, I like React.js.
Vue is the microwave that allows you to get up and running really fast and make your cooking life efficient and easy. If I am a startup with a young developer team and a strict deadline, I like Vue.js.
Sure, the above is a simple example and there are many more things to consider. However, what you should be learning is not the latest fad, framework, or the new experimental React Hook API, etc…
Don’t get me wrong: It’s good to know these things if you are working with them directly, but in 5 years time, the landscape will change.
The great programmers are the ones who not only know how to use at least one of these tools, but more importantly, they see the high level reason for why these technologies exist and can make decisions on when to use one over the other.
They are ready for the next wave by having a long-term mindset. Learn the fundamentals and learn what problems each tool solves so that you are always ready for change.
The more years of experience you have, the more you start to realize that in order to keep up with the industry, you don’t need to memorize every single API, listen to every single podcast, watch every single conference talk, or read every single blog post. You need to learn and understand the fundamental principles that underlie all these tools.
That's why great programmers know about data structures and algorithms, how compilers work, how design patterns can help build large systems, etc.
You can be myopic on the other end of the spectrum and think that all these libraries and tools are useless… This is just as bad.
If you have a drill available to you, why waste time and effort using a screwdriver?
Again, it doesn’t matter. Keep learning, and don’t forget about the tried and tested computer science topics that underlie everything. There is a reason big tech companies ask data structures and algorithms questions in their interviews.
Just make sure next time somebody asks you: “Why did you pick React?” You have a good answer to give them.
Well let's break this down step-by-step. As I mentioned above, you really need to look at the factors that affect you, your goals and any external decisions.
With this in mind, we're going to look at 3 main criteria...
The goal is to conduct an unbiased search based on the criteria:
In this article you will find sections on the above topics.
Each of these frameworks has their pros and cons, but if you don't care and just want to accelerate your career as quickly as possible then here is how you should pick which one to learn.
Ideally, you will pick the tool that:
So let’s get started!
I would venture a guess that this is one of the most, if not the most important factor for you in deciding what to learn in your career. After all, time is a valuable resource. With so many things to learn, you want to make sure you pick the one that makes you money.
So let’s have a look at the numbers:
My criteria for selecting the data was the following:
All jobs were based on open US positions only, so we can get a rough idea of the market.
Then I looked at multiple sources and combined the open positions for each.
LinkedIn is one of, if not the biggest job board. This is a worldwide search for developer job postings for each library.
Indeed, SimplyHired and Dice are 3 big tech job boards in the USA so the search is geographically targeted there. You may not live in the US, but it’s good to see what is happening in a very important location for tech.
WellFound (Formerly AngelList) is probably the best job board for startups. We get to see what startups, and the newer more modern companies are using in tech.
React is the top dog with the most open positions by far, at 80,615 jobs available.
Then we have Angular with 37,849, and Vue with 13,074 jobs open.
Learn React or Angular if you are looking to have the most options for employment.
Let’s have a look at what developer usage looks like across React, Angular and Vue.
Here are the total number of downloads by developers from NPM (as of March 2024):
And the Github statistics (as of March 2024 - are a very similar distribution):
Github stars visualized compared to each other (as of March 2024):
And here are the Google trends based on search terms (as of March 2024 - this could technically be related to job demand as well):
Overall, we see positive growth in all of these libraries when it comes to downloads and Github activity.
Developers are using these libraries, but we definitely see a disproportionate split between Github stars and actual usage of Vue.js.
React seems to have good developer activity in relation to the actual usage by developers, while Angular seems to come in second, and Vue once again does not seem to get used as much as people may think.
Also, if you're a developer there are probably going to be more documentation, blog posts, and activity around the ecosystem for React than for Angular or Vue. Stick to React if that is important to you.
Quick note: Vue is often used by Chinese giants such as Alibaba, Baidu, Tencent, even Xiaomi and DJI instead of React or Angular which were created by Facebook and Google.
Although money is important, it's not everything, and ideally you want to be working with tools that you enjoy.
With this in mind, let's take a look at StackOverFlows latest survey to see what devs are saying about each library.
This year they've changed it around from most loved, hated, and wanted to 'admired and desired'.
Here's how it works:
As you can see, devs love React with 63.61% of them wanting to continue to work with it.
Interestingly, Vue is right up there next to it at 57.87%, and Angular is not far behind at 50.75%.
If you want to be happy and have the best experience when you are developing, React or Vue are your best choices.
I've gone ahead and included 2 videos below. Each of them are crash courses for our React and Vue courses, totally for free! (That's over 12 hours of free training!)
Here's the free React crash course video:
And here's the free Vue crash course video:
Enjoy, and remember - the above graphs all show a snapshot in time at the writing of this article (with some stats updated for you).
Ideally, you want to see as long of a trend of the numbers as possible (especially job postings) to make sure you aren’t riding a dying wave, or a hype-only wave.
However, I can tell you that since initially writing this post in December 2018, the conclusions generally seem to still hold true as of March 2024.
It’s always important to draw your own conclusions. BUT, just because you asked nicely, my opinion is that React is still the way to go this year (it was also my recommendation for the past few years) based on the information above.
Simply because you want to pick something that is being used at companies, but also something that is growing and not diminishing as a trend. You also want to have a strong community with good documentation and resources. And you want to use a tool that you will enjoy working with.
React seems to do the best job at hitting all of these factors. This doesn’t mean you should forget about Angular or Vue. They are all still great libraries and frameworks, and nothing lasts forever.
So if you have limited time and you shouted “TELL ME! JUST TELL ME ONE TO STUDY AND LEARN” and you yell really loud, I would tell you to learn React.
But remember - everybody has their own opinion and each tool exists to solve a problem. There is no winner take all in the tech space (at least not until AI bots by BostonDynamics take over our world), so be smart and just use the data from here and your own, to make an informed decision based on your needs.
All the courses I teach for programmers keeps this methodology in mind to teach you the most modern and important skills in the industry to make you valuable to employers. They’re pretty good courses (if I do say so myself) so if you’re interested in leveling up your skills, do check them out.
If you're not sure where to start or still don't know which path to take, try out our Tech Career Path Quiz to get a personalized step-by-step roadmap to follow.
By the way, my full time job is to teach people to code in the most efficient way possible as the Lead Instructor of Zero To Mastery Academy. You can see a few of my courses below or see all of the Zero To Mastery courses by visiting the courses page.