Our Top Picks
React uses a copy of the HTML DOM, called the Virtual DOM to update the changes done in code. The Virtual DOM is then compared with the HTML DOM, which is updated to show the changes to the user.
React uses JSX expressions to declare variables with HTML elements, like the following simple example:
const element = <h1>Hello, world!</h1>;
One of the main reasons developers and companies opt for React is that it also provides a separate framework for hybrid mobile application development. This means that developers don’t have to start learning the mobile platform from scratch.
Angular is the oldest of these three frameworks and was introduced as AngularJS back in 2010 by Google Inc. Angular 2 was then released, and there were some considerable changes, which left legacy applications stranded in AngularJS. However, support is still provided for AngularJS. We will be focussing on Angular 2+ in this article.
Vue is the newest of the three frameworks and borrows the best of both of them. Developed in 2014 by ex-staff of Google Inc., it has soon grown to popularity. Download statistics on npm-stat.com show a visible increase in the number of downloads of Vue.js beginning in early 2018.
Vue.js uses the Virtual DOM to render changes to your site and has a syntax that is HTML based, unlike the other frameworks on this article, making its learning curve much lower. Angular, for example, has a framework-specific syntax called TypeScript, making it more time-consuming to learn.
Comparison between Angular, React and Vue
The first thing to consider is what type of application you are looking to build. All three of these frameworks provide high performance and have very small loading sizes when used in applications:
Angular – 500 KB
React – 100 KB
Vue – 80 Kb
While a small size is the best for smaller projects, Angular has many features like testing utilities, which are very important for many projects.
They are all distributed under an MIT license and as such, are free to use even for more commercial projects. So you are in the clear on those aspects.
All three of these frameworks provide support for Single Page Applications (SPA) for both web and mobile applications. In this regard, React provides the biggest advantage as it is made for both. Both Angular and VueNative also provide easy ways of converting a web application to its mobile version by defining CSS and view templates. In essence, it comes down to personal preference and availability of support for features that you require for your applications. Angular and React score extra points in this category due to their relative stability over the years, and loads of community support.
Next, we look at the popularity of these frameworks in terms of downloads, beginning in 2014.
Based on the graph, it is evident that React is the most popular out of the three. However, this should not be the only determining factor.
One of the other most important indicators is job openings for these frameworks. Indeed.com gives these figures for the US as at December 2018:
Here too, the preference seems to be for React, with Angular as a strong runner-up.
Salaries are another indicator, while these results from the “State of JS” survey cannot be considered universal, they give you quite a good idea about the industry.
The story doesn’t seem to change here either, React and Angular are at the forefront with React having a lead of more than $10,000.
Let’s look at community support next. GitHub statistics for the main repositories of these frameworks, as at the time of this article show results that are evident.
The important row to look at is the Contributors, and React has a strong lead meaning that it will continue to grow and mature. Let’s also look at the number of commits during the past 12 months, again from GitHub.
The last factor we are going to look at is the stability of these frameworks in terms of version changes and support. Angular has already had a bad track-record with their migration from AngularJS to Angular 2, causing a major rift. They plan major updates every six months, with a period of six months before any major APIs are deprecated, this gives you a year to make necessary changes if any.
Facebook promises stability, due to their massive user base. React is the most regular with updates and support migration with react-codemod.
Vue promises that 90% of their APIs are the same from 1.x to 2. Their migration helper tool supports and assesses migration status.
Ember, Meteor, Mithril, and Svelte are not so far behind
We found some honorable picks during our research. They, too, are gradually building a following in certain circles due to specific features that they bring to the mix. This graph from npm-stat.com shows this clearly:
Ember has been around since 2015, and specializes in two-way data binding and is used by popular platforms like LinkedIn and Netflix. Meteor, another upcoming framework is an all-round powerhouse for both back and front end development with good database connectivity as well.
Some Other Things to Consider
Express and Node.JS are other frameworks we can’t ignore, but they are specialized for back-end development only.
We’ve looked at many things, such as what front-end JS frameworks are, how they differ from libraries, and the pros and cons of each framework.
Considering the most obvious factors such as popularity, usage, community support, job availability, and salary scales, React has an obvious lead. However, there are other things to consider, such as the type of app you wish to build. Some of these frameworks provide the possibility of having a common code base for both web and mobile. Angular even allows you to convert an existing web application to mobile easily.
There is also the size of the framework that has to be downloaded on to each page. So if your project is quite small, Vue would be a good option. But you have to consider all the additional functionality provided with React and Angular.
So, in conclusion, this is a choice you need to make, we hope that we helped you in the right direction.