In this article we will list the main options, aka the big Three (Angular, React and Vue) and tell you the differences between them and each framework's pros and cons.
Let's take a look at the various options...
Angular has been around the longest. It was first released in 2010 (as AngularJS) and is developed by Google. After the release of V2 they dropped the JS appendix and the name is since then just "Angular".
Most companies that use Angular made that decision before React and Vue were around as viable options, so for brand new companies Angular is not exactly an obvious choice.
- Has been around the longest (since 2010)
- Broad userbase
- Lowest developer satisfaction score (42%) *
- Biggest footprint of all three frameworks (around 500 kB)
- Steep learning curve
React was first released in 2013 and is developed by Facebook. In the past there were some issues about their license not being truly open-source (basically using React meant you agreed to never sue them or they would take your right to use React away). But they changed this to an MIT license in 2017 so right now the license is not an issue of concern, but as Facebook has been the source of some questionable privacy concerns, you never know what the future will hold.
Instead of HTML, React uses JSX, which can take a while getting used to and might not feel as intuitive, but having said that, the use of JSX does allow for more fine-grained control over your template.
A lot of companies mainly choose React cause most companies use it, and not necessarily cause it is actually better. So React is more or less the "safe" choice.
- Highest developer satisfaction score (88%) *
- Most used, so easier to find personnel
- Good solution for creating very complex user interfaces
- Relatively steep learning curve
- You need other technologies before you can create a full web application
- Created by Facebook
Vue is the youngest kid on the block, it has been around since 2014 and was started by ex-Google employee Evan You. Over the last three years, Vue has been getting a lot of traction and more and more companies have decided to adopt it. A new release (V3) just came out which added a lot of significant improvements, so it might be great timing to already start using Vue 3 so your company is ready for the future.
Vue is driven entirely by the open source community, so not backed by a big corporation like Google or Facebook.
- High developer satisfaction score (85%) *
- Simple and intuitive to use, easy to learn
- Suitable for both complex and simpler user interfaces
- Lightweight (only 22,5 kB)
- Not as established as React or Angular
- Not so easy to find Vue developers (even though it is gaining traction)
The best possible answer is to ask your (front-end) developers which framework they prefer. Most employees but especially developers generally find it very important to get this kind of autonomy/freedom and it will also result in them taking more ownership, and them becoming happier and more engaged employees.
In case you are just starting out and don't have a development team yet, you could let it be decided by whoever you end up hiring. Or you could use it as a job interview question to see which framework they prefer and why, and get valuable information about them as a candidate that way.
If your team doesn't find a consensus, you could use the information above to have a team discussion about it. It is a very important decision and you will be more or less locked in for at least a couple of years realistically speaking.