React vs Angular vs Vue 2020
By: David Tyler Trafford
Tags: JavaScript, React, Angular, Coding, Vue

The framework battle continues into 2020 with no signs of slowing down. Which one of these front end giants is leading the pack? Well that depends on the way you look at it. Lets take a look at some of the numbers.

Job Demand and Postings

Unless you are the kind of coder who just likes to sit there and make websites for fun, the most likely statistic you are interested in would be job demand. Which one will land you that great position or top out your worth in the market.

The above chart is based of a job posting search using the name of each of the frameworks for the whole country of Canada. To my surprise Vue has a demanding lead over both Angular and even React.

It should be noted that the keyword search is not specifying what the main desired skills is, and each of these postings could be requesting the name of the frameworks as a secondary “nice to have” skill.

Popularity

Frequency of downloads

Next lets look at what developers seems to prefer. When you use a framework everyday one of the top considerations to you could very well be the “ease of use” or preference. If you are just starting out this could also carry over the amount of supporting material you can find from the community to help you along your way as well.

Number of framework downloads. Source of the image

In terms of popularity it seems React would be the developers choice by far as it stands currently. Vue does seem to be on the rise slowly, but has a long way to go to close the gap.

I would assume that the consistent level of Angular is attributed to the fact that companies that are already invested in Angular are staying with Angular, while new comers are going for leaner frameworks, with easier learning curves such as React and Vue.

Pros and Cons

React

Benefits of React:

Easy to learn, thanks to its simple design, use of JSX (an HTML-like syntax) for templating, and highly detailed documentation.

Developers spend more time writing modern JavaScript, and less time worrying about the framework-specific code.

Extremely fast, courtesy of React’s Virtual DOM implementation and various rendering optimizations.

Great support for server-side rendering, making it a powerful framework for content-focused applications.

First-class Progressive Web App (PWA) support, thanks to the `create-react-app` application generator.

Data-binding is one-way, meaning less unwanted side effects.

Redux, the most popular framework for managing application state in React, is easy to learn and master.

React implements Functional Programming (FP) concepts, creating easy-to-test and highly reusable code.

Applications can be made type-safe with either Microsoft’s TypeScript or Facebook’s Flow, with both featuring native support for JSX.

Migrating between versions is generally very easy, with Facebook providing “code mods” to automate much of the process.

Skills learned in React can be applied (often directly) to React Native development.

Drawbacks of React:

React is unopinionated and leaves developers to make choices about the best way to develop. This can be tackled by strong project leadership and good processes.

The community is divided on the best way to write CSS in React, split between traditional stylesheets (CSS Modules) and CSS-in-JS (i.e. Emotion and Styled Components).

React is moving away from class-based components, which may be a barrier for developers more comfortable with Object Oriented Programming (OOP).

Mixing templating with logic (JSX) can be confusing for some developers at first.

Companies that use React: Facebook, Instagram, Netflix, New York Times, Yahoo, Khan Academy, Whatsapp, Codecademy, Dropbox, Airbnb, Asana, Atlassian, Intercom, Microsoft, Slack, Storybook, and many more.

Angular

Benefits of Angular:

Angular’s created to be used alongside with Typescript. And has exceptional support for it.

Angular-language-service — which allows intelligence and autocomplete inside of component external HTML template files.

New features like a generation of Angular based npm libraries from CLI, generation, and development of WebComponents based on Angular.

Detailed documentation that allows getting the all necessary information for the individual developer without asking his colleagues. However, this requires more time for education.

One-way data binding that enables singular behaviour for the app which minimized risks of possible errors.

MVVM (Model-View-ViewModel) that allows developers to work separately on the same app section using the same set of data.

Dependency injection of the features related to the components with modules and modularity in general.

Structure and architecture specifically created for great project scalability

Drawbacks of Angular:

Variety of different structures(Injectables, Components, Pipes, Modules etc.) makes it a bit harder to learn in comparison with React and Vue.js, which have an only “Component” in mind.

Relatively slower performance, according to different benchmarks. On the other hand, it can be easily tackled by utilizing so-called “ChangeDetectionStrategy”, which helps to control the rendering process of components manually.

Companies that use Angular: Companies that use Angular: Microsoft, Autodesk, MacDonald’s, UPS, Cisco Solution Partner Program, AT&T, Apple, Adobe, GoPro, ProtonMail, Clarity Design System, Upwork, Freelancer, Udemy, YouTube, Paypal, Nike, Google, Telegram, Weather, iStockphoto, AWS, Crunchbase.

Vue

Benefits of Vue.js:

Empowered HTML. This means that Vue.js has many similar characteristics with Angular and this can help to optimize HTML blocks handling with the use of different components.

Detailed documentation. Vue.js has very circumstantial documentation which can fasten learning curve for developers and save a lot of time to develop an app using only the basic knowledge of HTML and JavaScript.

Adaptability. It provides a rapid switching period from other frameworks to Vue.js because of the similarity with Angular and React in terms of design and architecture.

Awesome integration. Vue.js can be used for both building single-page applications and more difficult web interfaces of apps. The main thing is that smaller interactive parts can be easily integrated into the existing infrastructure with no negative effect on the entire system.

Large scaling. Vue.js can help to develop pretty large reusable templates that can be made with no extra time allocated for that according to its simple structure.

Tiny size. Vue.js can weight around 20KB keeping its speed and flexibility that allows reaching much better performance in comparison to other frameworks.

Drawbacks of Vue.js:

Lack of resources. Vue.js still has a pretty small market share in comparison with React or Angular, which means that knowledge sharing in this framework is still in the beginning phase.

Risk of over flexibility. Sometimes, Vue.js might have issues while integrating into huge projects and there is still no experience with possible solutions, but they will definitely come soon.

Companies that use Vue.js: Xiaomi, Alibaba, WizzAir, EuroNews, Grammarly, Gitlab and Laracasts, Adobe, Behance, Codeship, Reuters.

Thoughts

Depending on how you look at the numbers, what is important to you, or what your idea of a good framework is based on the pros and cons, you will come to different conclusions. My opinion is mine alone and you opinion may be completely different.

After reviewing the material in this, I don’t think there has ever been a better time to look at Vue. It is in huge demand regarding job postings, and even if it is just a secondary “nice to have” skill for now the investment in picking it up will certainly pay off.

That being said I am partial to React, I find it easy to use and can produce quality web sites in less time than before using it. After looking the popularity it appears a good amount of the developer community would agree with me. However the developer community will not sign your pay checks and at the end of the day that is probably why you are doing this.

Lastly Angular seems to be losing the battle. They will need to do some major damage control in order to pull back into contention. They trail in job postings, and significantly in popularity.

Thanks for reading and I hope this helped!