{"id":24330,"date":"2020-08-04T14:36:38","date_gmt":"2020-08-04T20:36:38","guid":{"rendered":"https:\/\/goldenti.com\/site\/?p=24330"},"modified":"2020-08-04T14:40:32","modified_gmt":"2020-08-04T20:40:32","slug":"react-vs-angular-the-complete-comparison","status":"publish","type":"post","link":"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/","title":{"rendered":"React vs. Angular: The Complete Comparison"},"content":{"rendered":"\n<p>Do you want to learn about and discover the differences between React vs. Angular? Then keep on reading! I am going to explain to you the similarities, differences, pros, and cons of both React and Angular in this article. You don\u2019t need to be an expert programmer to understand this post but it is encouraged that you are familiar with JavaScript.<\/p>\n\n\n\n<p>*Disclaimer: I have worked extensively with both React and Angular. I used Angular at my job at IBM and React &amp; React Native at my current job. I personally prefer React but will do my best not to taint the article with bias.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>History of&nbsp;React vs. Angular<\/strong><\/h2>\n\n\n\n<p><strong>Angular&nbsp;<\/strong>is a JavaScript&nbsp;<strong>framework<\/strong>&nbsp;written in TypeScript. It was developed and is maintained by Google, and is described as a \u201c<em>Superheroic JavaScript MVWFramework<\/em>\u201d on Angular\u2019s webpage. Angular (version 2 and above), originally released in September 2016, is a complete rewrite of AngularJS (released in October 2010). The newest major release is version 6 at the time of writing. Google AdWords, one of the most important projects at Google, uses Angular \u2013 so Angular is likely to be around for a while.<\/p>\n\n\n\n<p><strong>React&nbsp;<\/strong>is a JavaScript&nbsp;<strong>library<\/strong>&nbsp;developed and maintained by Facebook. It was released in March 2013 and is described as \u201c<em>a JavaScript library for building user interfaces<\/em>\u201d. React is used far more at Facebook than Angular is at Google if it\u2019s any indication as to how big Facebook is betting on this technology. By this metric, you can also conclude that React will be around for a very long time.<\/p>\n\n\n\n<p>Both Frameworks are available under the&nbsp;<strong>MIT license.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Architecture of&nbsp;React vs. Angular<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Framework vs. Library<\/strong><\/h3>\n\n\n\n<p>Angular and React have many similarities and many differences. One of them is that&nbsp;<strong>Angular<\/strong>&nbsp;is a full-fledged MVC framework and React is merely a JavaScript Library (just the view). Let me elaborate. Angular is considered a framework because it offers strong opinions as to how your application should be structured. It also has much more functionality \u201cout-of-the-box\u201d. You don\u2019t need to decide which routing libraries to use or other such considerations \u2013 you can just start coding. However, a drawback is that you have less flexibility \u2013 you must use what Angular provides.<\/p>\n\n\n\n<p>Angular provides the following \u201cout of the box\u201d:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Templates, based on an extended version of HTML<\/li><li>XSS protection<\/li><li>Dependency injection<\/li><li>Ajax requests by @angular\/HTTP<\/li><li>Routing, provided by @angular\/router<\/li><li>Component CSS encapsulation<\/li><li>Utilities for unit-testing components.<\/li><li>@angular\/forms for building forms<\/li><\/ul>\n\n\n\n<p><strong>React<\/strong>, on the other hand, gives you much more freedom. It only provides the \u201cview\u201d in MVC \u2013 you need to solve the M and C on your own. Due to this, you can choose any of your own libraries as you see fit. You will end up using many independent, fast-moving libraries. Because of this, you will need to take care of the corresponding updates and migrations by yourself. In addition, each React project is different and requires a decision requiring its folder hierarchy and architecture. Things can go wrong much more easily due to this.<\/p>\n\n\n\n<p>React provides the following \u201cout of the box\u201d:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Instead of classic templates, it has JSX, an XML-like language built on top of JavaScript<\/li><li>XSS protection<\/li><li>No dependency injection<\/li><li>Fetch for Ajax requests<\/li><li>Utilities for unit-testing components<\/li><\/ul>\n\n\n\n<p>Some popular libraries to add functionality are:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>React-router for routing<\/li><li>Redux or MobX for state management<\/li><li>Enzyme for additional testing utilities<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Regular DOM vs. Virtual Dom<\/strong><\/h3>\n\n\n\n<p><strong>React\u2019s<\/strong>&nbsp;use of a&nbsp;<strong>virtual DOM&nbsp;<\/strong>is one of its features that makes it so blazingly fast. You\u2019ve probably heard of it. It was React\u2019s \u201ckiller feature\u201d when it was first released. Let me give you an example scenario:<\/p>\n\n\n\n<p>Let\u2019s say that you want to update a user\u2019s age within a block of HTML tags. A&nbsp;<strong>virtual DOM<\/strong>&nbsp;only looks at the differences between the previous and current HTML and changes the part that is required to be updated.&nbsp;<strong>Git&nbsp;<\/strong>employs a similar method, which&nbsp;distinguishes the changes in a file.<\/p>\n\n\n\n<p>Conversely, Angular opted to use a&nbsp;<strong>regular DOM.&nbsp;<\/strong>This will update the entire tree structure of HTML tags until it reaches the user\u2019s age.<\/p>\n\n\n\n<p>So why does this matter? The example above is trivial and probably won\u2019t make any difference in a real app. However, if we\u2019re dealing with hundreds of data requests on the same page (and the HTML block is replaced for every page request) it drastically affects the performance, in addition to the user\u2019s experience.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Templates \u2013 JSX or HTML<\/strong><\/h3>\n\n\n\n<p>React decided to combine UI templates and inline JavaScript logic, which no company had ever done&nbsp;before. The result is called \u201c<strong>JSX\u201d<\/strong>. Although it may have sounded like a bad idea,&nbsp;Facebook\u2019s gamble paid off big-time. React uses something called a&nbsp;<em>component<\/em>, which contains&nbsp;<em>both<\/em>&nbsp;the markup&nbsp;<em>AND<\/em>&nbsp;logic in the same file. It also uses an XML-like language that allows you to write markup directly in your JavaScript code. JSX is a big advantage for development, because you have everything in one place, and code completion and compile-time checks work better.<\/p>\n\n\n\n<p><strong>Ex<\/strong>. In this example, we declare a variable&nbsp;<em>name<\/em>&nbsp;and use it inside JSX by wrapping it in curly braces:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const name = 'Josh Perez';\nconst element = &lt;h1>Hello, {name}&lt;\/h1>;\n<\/code><\/pre>\n\n\n\n<p>Angular uses templates that are enhanced HTML with Angular directives (\u201c<em>ng-if\u201d<\/em>&nbsp;or \u201c<em>ng-for\u201d<\/em>). React only requires knowledge of JavaScript, but with Angular, you must learn its specific syntax.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>React Fiber<\/strong><\/h3>\n\n\n\n<p>I\u2019m not going to go into too much detail, but React Fiber is going to take React from \u201cfast\u201d to \u201cblazingly fast\u201d. Fiber is a backward-compatible, complete rewrite of the React core. It was introduced to React v16 and the upgrade went so smooth that you most likely didn\u2019t even notice it happened. With Fiber, react can pause and resume work as it sees fit to get what matters onto the screen as quickly as possible. I encourage you to do more research into React Fiber \u2013 it is a killer feature.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Components<\/strong><\/h3>\n\n\n\n<p>You\u2019ve heard of components, haven\u2019t you? Unless you\u2019ve been living under a rock, I\u2019m sure that you have. Both&nbsp;<strong>React<\/strong>&nbsp;and&nbsp;<strong>Angular<\/strong>&nbsp;are both component-based. A component receives an input, and after some internal logic returns a rendered UI template (a sign-in form or a table for example) as output. Components&nbsp;<strong>should<\/strong>&nbsp;<strong>be easy to reuse<\/strong>&nbsp;within other components or even in other projects. For example, you could have a sign-in component consisting of two text inputs (user &amp; password) and a \u201cLogin\u201d button. This component may have various properties and underlying logic, but it should be generalized so that you can reuse the component with different data on another page or in another app.<\/p>\n\n\n\n<p>Components are meant to be self-contained \u201cchunks\u201d of your app that you can reuse in different situations. They are meant to encapsulate logic. The web is slowly becoming component-based, so I recommend you start getting accustomed to them right away.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>State Management<\/strong><\/h3>\n\n\n\n<p>There are&nbsp;<strong>states<\/strong>&nbsp;everywhere in an application. Data morphing over time involves complexity. Do you want to know how it works? The UI is described by the&nbsp;<strong>component<\/strong>&nbsp;at a given point in time. Then, the framework re-renders the entire UI of the component when data changes. This ensures that the data is always up to date.<\/p>\n\n\n\n<p>To handle state in React, Redux is often used as the solution. In Angular, you may not need Redux. But, if your application becomes large enough, chances are that you will. Some developers, including me, opt to use MobX instead of Redux. MobX has more \u201cmagic\u201d (things automatically done for you behind the scenes) and I personally prefer it. Although Redux and MobX go beyond the scope of this article, I highly encourage you to do some more research on them.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Data Binding<\/strong><\/h3>\n\n\n\n<p>A large difference between React and Angular is&nbsp;<strong>one-way vs. two-way binding<\/strong>. Angular uses&nbsp;<strong>two-way binding.&nbsp;<\/strong>For example, if you change the UI element (a user input) in Angular, then the corresponding model state changes as well. Additionally, if you change the model state, then the UI element changes \u2013 hence,&nbsp;<strong>two-way data binding<\/strong>.<\/p>\n\n\n\n<p>However, React only has&nbsp;<strong>one-way binding<\/strong>. First, the model state is updated, and then it renders the change in the UI element. However, if you change the UI element, the model state&nbsp;<strong>DOES NOT&nbsp;<\/strong>change. You must figure that out for yourself. Some common ways are through&nbsp;<strong>callbacks&nbsp;<\/strong>or&nbsp;<strong>state management<\/strong>&nbsp;libraries (see State Management in the previous section).<\/p>\n\n\n\n<p>I must admit that Angular\u2019s method is easier to understand at first. However, as the project becomes larger React\u2019s way results in a better data overview (making debugging much easier). Both concepts have their pros and cons. You need to understand the concepts and determine if this influences your framework decision.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>TypeScript vs JavaScript\/Flow<\/strong><\/h2>\n\n\n\n<p>React uses JavaScript, a dynamically-typed language (which means you don\u2019t have to define the variable\u2019s type). Because many developers already know and love JavaScript, this can be seen as a pro.<\/p>\n\n\n\n<p>Conversely, if you want to use Angular you\u2019ll need to get comfortable with TypeScript. TypeScript is a statically typed language, which means you must define the variable\u2019s type (string, number, array, etc). It is simply a transpiler that compiles TypeScript to JavaScript code, which also means you can write ES5 code in a TypeScript file.<\/p>\n\n\n\n<p>TypeScript\u2019s purpose is to ensure a smooth transition for programmers with an Object Oriented Programming (OOP) background. TypeScript was also released in the period of ES5, and during that time, ES5 was not a class-based OOP language.<\/p>\n\n\n\n<p>Since then, JavaScript has grown and garnered lots of great changes. With ES6, you have modules, classes, spread operators, arrow functions, template literals and more. It allows developers to write declarative code while having the characteristics of a true OOP language (that is, including class-based structure).<\/p>\n\n\n\n<p>But, an advantage of TypeScript is that it offers more consistency in examples found online (React examples can be found in either ES5 or ES6).<\/p>\n\n\n\n<p>You should also probably know that you could use Flow to enable type checking within your React project. It\u2019s a static type-checker developed by Facebook for JavaScript. If you so choose, you can also use TypeScript in your React project (although it isn\u2019t natively included).<\/p>\n\n\n\n<p><strong>Ex1.&nbsp;<\/strong>Property comparison between JavaScript and TypeScript<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ JavaScript (ES6)\nconst name;\n\n\/\/ TypeScript\nconst name: string; \/\/ &lt;-- static typed!\n<\/code><\/pre>\n\n\n\n<p><strong>Ex2.&nbsp;<\/strong>Argument comparison between JavaScript and TypeScript<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ JavaScript (ES6)\nfunction getName(name, age){\n   return name + age;\n}\n\n\/\/ TypeScript\nfunction getName(name: string, age: number){ \/\/ &lt;-- static typed!\n   return name + age;\n}\n<\/code><\/pre>\n\n\n\n<p><strong>Ex3.&nbsp;<\/strong>Here is a simple class-object comparison between JavaScript and TypeScript<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ JavaScript (ES6)\nclass Greeter {\n   constructor(message) {\n      this.greeting = message;\n   }\n\n   greet() {\n      return \"Hello, \" + this.greeting;\n   }\n}\n\n   let greeter = new Greeter(\"JavaScript!\");\n   greeter.greet()\n\n   \/\/  Hello, JavaScript!\n\n\/\/ TypeScript\nclass Greeter {  \/\/ &lt;-- static typed!\n\n   greeting: string;\n\n   constructor(message: string) {\n      this.greeting = message;\n   }\n\n   greet() {\n      return \"Hello, \" + this.greeting;\n   }\n}\n\n   let greeter = new Greeter(\"TypeScript!\");\n   greeter.greet()\n\n   \/\/  Hello, TypeScript!\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Mobile Solutions of&nbsp;React vs. Angular<\/strong><\/h2>\n\n\n\n<p>Angular and React both offer solutions to create mobile applications.<\/p>\n\n\n\n<p><strong>Ionic<\/strong>&nbsp;is a framework for developing hybrid mobile applications. It uses a Cordova container that is incorporated with Angular. Ionic provides a robust UI component library that is easy to set up and develop hybrid mobile applications with. However, the resulting app on a device is simply a web app inside of a native web view container. Because of this, the apps can be slow and laggy.<\/p>\n\n\n\n<p><strong>React Native<\/strong>, on the other hand, is a platform developed by Facebook for creating truly native mobile applications using React. The syntax is slightly different, but there are much more similarities than differences. Unlike Ionic, which is simply a glorified web app, React Native produces a truly native UI. It also allows you to create your own components and bind them to native code written in Objective-C, Java, or Swift.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Testing in&nbsp;React vs. Angular<\/strong><\/h2>\n\n\n\n<p>Jest is used by Facebook to tests its React code. It is included in every React project and requires zero configuration to use. It also includes a powerful mocking library. Many times Jest is used in combination with Enzyme (a JavaScript testing utility used at Airbnb).<\/p>\n\n\n\n<p><strong>Jasmine<\/strong>&nbsp;is a testing framework that can be used in Angular.&nbsp;<a href=\"https:\/\/medium.com\/@_ericelliott\">Eric Elliott<\/a>&nbsp;says that Jasmine \u201c<em>results in millions of ways to write tests and assertions, needing to carefully read each one to understand what it\u2019s doing\u201d.&nbsp;<\/em>The output, in my opinion, is also very bloated and difficult to read. Here are some educational articles on the integration of Angular with&nbsp;<a href=\"https:\/\/medium.com\/lacolaco-blog\/setting-up-angular-2-testing-environment-with-karma-and-webpack-e9b833befd99\">Karma<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/medium.com\/@PeterNagyJob\/angular2-configuration-and-unit-testing-with-mocha-and-chai-4ada9484e569\">Mocha<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Learning Curve of&nbsp;React vs. Angular<\/strong><\/h2>\n\n\n\n<p>An important decision you must make in choosing a new technology is its learning curve. The answer depends on your previous experience and familiarity with the related concepts. However, we can still try to assess the number of new things you\u2019ll need to learn before you get started:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>React:<\/strong><\/h4>\n\n\n\n<p>The first thing you\u2019ll learn in React is JSX. It may seem awkward to write at first, but it doesn\u2019t add much complexity. You\u2019ll also need to learn how to write components, manage internal state, and use props for configuration. You don\u2019t need to learn any new logical structures or loops since all of this is plain JavaScript.<\/p>\n\n\n\n<p>Once you\u2019re done learning the basics, you\u2019ll need to learn a routing library (since React doesn\u2019t come with one). I recommend react router v4. Next comes state management with Redux or MobX. I\u2019ve already touched upon this subject, so I\u2019ll skip this. Once you\u2019ve learned the basics, a routing library, and state management library, you\u2019re ready to start building apps!<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Angular:<\/strong><\/h4>\n\n\n\n<p>Angular has many topics to learn, starting from basic ones such as directives, modules, decorators, components, services, dependency injection, pipes, and templates. After that, there are more advanced topics such as change detection, zones, AoT compilation, and Rx.js.<\/p>\n\n\n\n<p>The entry barrier for Angular is clearly higher than for React. The sheer number of new concepts is confusing to newcomers. And even after you\u2019ve started, the experience might be a bit rough since you need to keep in mind things like Rx.js subscription management and change detection performance.<\/p>\n\n\n\n<p>It may seem like React has a lower barrier for entry, and I would most certainly have to agree. However, that doesn\u2019t mean that React is \u201cbetter\u201d. I encourage you to try both React and Angular to see which one you personally prefer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Popularity &amp; Growth Trajectory of&nbsp;React vs. Angular<\/strong><\/h2>\n\n\n\n<p>Before you choose a framework\/library to work with, it\u2019s important to look at its&nbsp;<strong>popularity<\/strong>&nbsp;for the sole purpose of&nbsp;<strong>job prospects<\/strong>. The more popular a technology is, in most cases, the more jobs you can find. Let\u2019s take a look at some statistics:<\/p>\n\n\n\n<p>On&nbsp;<strong>GitHub<\/strong>, at the time of writing, Angular (version 2 and above) has&nbsp;<strong>40,963 stars<\/strong>&nbsp;and&nbsp;<strong>732 contributors<\/strong>. However, it also&nbsp;<strong>2,162 issues<\/strong>&nbsp;(which are to be expected, since Angular is a full-fledged framework as opposed to just a library). Over the last 12 months, Angular has managed to garner&nbsp;<strong>35 stars\/day<\/strong>&nbsp;(on average).<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/programmingwithmosh.com\/wp-content\/uploads\/2018\/09\/image011.png?ssl=1\"><img decoding=\"async\" src=\"https:\/\/i0.wp.com\/programmingwithmosh.com\/wp-content\/uploads\/2018\/09\/image011.png?resize=719%2C266&amp;ssl=1\" alt=\"\" class=\"wp-image-1787\"\/><\/a><\/figure><\/div>\n\n\n\n<p>source:&nbsp;<a href=\"https:\/\/bestofjs.org\/projects\/angular\">https:\/\/bestofjs.org\/projects\/angular<\/a><\/p>\n\n\n\n<p>Conversely, on&nbsp;<strong>GitHub<\/strong>, React has&nbsp;<strong>111,927 stars<\/strong>&nbsp;and&nbsp;<strong>1,242 contributors.&nbsp;<\/strong>As far as&nbsp;<strong>issues<\/strong>&nbsp;go, React has far less than Angular, at&nbsp;<strong>287&nbsp;<\/strong>(which is to be expected since React is merely a view library). As you can clearly see, React has more than double the amount of&nbsp;<strong>GitHub stars&nbsp;<\/strong>and almost&nbsp;<strong>double<\/strong>&nbsp;the number of contributors. Of course, it could also be argued that React came out sooner than Angular (version 2+), so it\u2019s had a longer amount of time to collect these stars\/contributors. However, React is growing faster, as it is has collected&nbsp;<strong>97 stars\/day<\/strong>&nbsp;over the last 12 months.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i1.wp.com\/programmingwithmosh.com\/wp-content\/uploads\/2018\/09\/image013.png?ssl=1\"><img decoding=\"async\" src=\"https:\/\/i2.wp.com\/programmingwithmosh.com\/wp-content\/uploads\/2018\/09\/image013.png?resize=719%2C266&amp;ssl=1\" alt=\"\" class=\"wp-image-1788\"\/><\/a><\/figure><\/div>\n\n\n\n<p>source:&nbsp;<a href=\"https:\/\/bestofjs.org\/projects\/react\">https:\/\/bestofjs.org\/projects\/react<\/a><\/p>\n\n\n\n<p>Other important metrics you need to look at are&nbsp;<strong>downloads<\/strong>&nbsp;and&nbsp;<strong>Google Trends&nbsp;<\/strong>search hits. According to&nbsp;<em>npmtrends.com<\/em>, you can see that downloads of both Angular and React are growing at incredible speeds. However, React currently has about&nbsp;<strong>10,000<\/strong>&nbsp;more downloads than Angular. This is significant.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/programmingwithmosh.com\/wp-content\/uploads\/2018\/09\/image015.png?ssl=1\"><img decoding=\"async\" src=\"https:\/\/i0.wp.com\/programmingwithmosh.com\/wp-content\/uploads\/2018\/09\/image015.png?resize=719%2C332&amp;ssl=1\" alt=\"\" class=\"wp-image-1789\"\/><\/a><\/figure><\/div>\n\n\n\n<p>source:&nbsp;<a href=\"https:\/\/www.npmtrends.com\/@angular\/core-vs-react\">https:\/\/www.npmtrends.com\/@angular\/core-vs-react<\/a><\/p>\n\n\n\n<p>On this chart collected from Google Trends over the last 2 years, you can see that React is on a much faster upwards trajectory than Angular, which has lost much of its momentum. This indicates that React is growing faster than Angular. Regardless, both technologies seem to be doing great and their futures look quite bright.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i1.wp.com\/programmingwithmosh.com\/wp-content\/uploads\/2018\/09\/image017.png?ssl=1\"><img decoding=\"async\" src=\"https:\/\/i1.wp.com\/programmingwithmosh.com\/wp-content\/uploads\/2018\/09\/image017.png?resize=719%2C250&amp;ssl=1\" alt=\"\" class=\"wp-image-1790\"\/><\/a><\/figure><\/div>\n\n\n\n<p>source:&nbsp;<a href=\"https:\/\/trends.google.com\/trends\/explore?cat=31&amp;date=today%205-y&amp;q=React,Angular\">https:\/\/trends.google.com\/trends\/explore?cat=31&amp;date=today%205-y&amp;q=React,Angular<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Most Loved, Dreaded, and Wanted Frameworks, Libraries, and Tools<\/strong><\/h3>\n\n\n\n<p>Another important statistic you should look at is the percentage of developers that love, dread, and want to learn a specific technology. A few&nbsp;statistics from Stack Overflow\u2019s 2018 Developer Survey can be found below. React is the 2<sup>nd<\/sup>&nbsp;<strong>most loved<\/strong>&nbsp;technology. Angular is ranked far lower, in 9<sup>th<\/sup>&nbsp;place.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/programmingwithmosh.com\/wp-content\/uploads\/2018\/09\/image019.png?ssl=1\"><img decoding=\"async\" src=\"https:\/\/i2.wp.com\/programmingwithmosh.com\/wp-content\/uploads\/2018\/09\/image019.png?resize=719%2C529&amp;ssl=1\" alt=\"\" class=\"wp-image-1791\"\/><\/a><\/figure><\/div>\n\n\n\n<p>source:&nbsp;<a href=\"https:\/\/insights.stackoverflow.com\/survey\/2018%23most-loved-dreaded-and-wanted\">https:\/\/insights.stackoverflow.com\/survey\/2018#most-loved-dreaded-and-wanted<\/a><\/p>\n\n\n\n<p>As far as&nbsp;<strong>dreaded technologies<\/strong>&nbsp;Angular is the 4<sup>th<\/sup>&nbsp;most dreaded, whereas React is the 11<sup>th<\/sup>&nbsp;most dreaded. That could mean a number of things: developers may find Angular hard to work with, the speed of development could be slow, or maybe it\u2019s just not flashy enough. Either way, it\u2019s not good for Angular to be so high on this list.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/programmingwithmosh.com\/wp-content\/uploads\/2018\/09\/image021.png?ssl=1\"><img decoding=\"async\" src=\"https:\/\/i2.wp.com\/programmingwithmosh.com\/wp-content\/uploads\/2018\/09\/image021.png?resize=720%2C537&amp;ssl=1\" alt=\"\" class=\"wp-image-1792\"\/><\/a><\/figure><\/div>\n\n\n\n<p>source:&nbsp;<a href=\"https:\/\/insights.stackoverflow.com\/survey\/2018%23most-loved-dreaded-and-wanted\">https:\/\/insights.stackoverflow.com\/survey\/2018#most-loved-dreaded-and-wanted<\/a><\/p>\n\n\n\n<p>Lastly, we come to the statistic that shows which technologies developers want to learn the most. It\u2019s not surprising to see React sitting in 1<sup>st<\/sup>&nbsp;place. However, Angular is in 4<sup>th<\/sup>&nbsp;place, which isn\u2019t too shabby either.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i1.wp.com\/programmingwithmosh.com\/wp-content\/uploads\/2018\/09\/image023.png?ssl=1\"><img decoding=\"async\" src=\"https:\/\/i1.wp.com\/programmingwithmosh.com\/wp-content\/uploads\/2018\/09\/image023.png?resize=719%2C537&amp;ssl=1\" alt=\"\" class=\"wp-image-1793\"\/><\/a><\/figure><\/div>\n\n\n\n<p>source:&nbsp;<a href=\"https:\/\/insights.stackoverflow.com\/survey\/2018%23most-loved-dreaded-and-wanted\">https:\/\/insights.stackoverflow.com\/survey\/2018#most-loved-dreaded-and-wanted<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Companies Using<\/strong><\/h3>\n\n\n\n<p>HUGE companies are utilizing both React and Angular. I\u2019m talking some of the biggest in the world. Here is just a small sample:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><u>React:<\/u><\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>Facebook<\/li><li>Airbnb<\/li><li>Uber<\/li><li>Netflix<\/li><li>Instagram<\/li><li>WhatsApp<\/li><li>Dropbox<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><u>Angular:<\/u><\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>Google<\/li><li>Nike<\/li><li>Forbes<\/li><li>Upwork<\/li><li>General Motors<\/li><li>HBO<\/li><li>Sony<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion of&nbsp;React vs. Angular<\/strong><\/h2>\n\n\n\n<p>As you have seen through my many examples, React and Angular are two titans in a cutthroat industry. In a business where only the strongest survive, you can easily conclude that these are some of the best technologies on the market. You can\u2019t go wrong with either one.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Recap<\/strong><\/h2>\n\n\n\n<p>Let\u2019s recap what you\u2019ve learned in this article:<\/p>\n\n\n\n<p><strong><u>Angular:<\/u><\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Is a full framework<\/li><li>Has a Regular DOM, which renders updates slower than React\u2019s Virtual DOM<\/li><li>The rendered JavaScript and HTML&nbsp;maintains a physical separation<\/li><li>Utilizes Components: emerging web components standard<\/li><li>Data Binding: two-way<\/li><li>You must use TypeScript<\/li><li>Mobile: Ionic and Cordova are slower than React Native<\/li><li>Testing:&nbsp; Jasmine &amp; Mocha<\/li><li>Learning Curve is higher, but once you understand it you have an entire MVC framework<\/li><li>Scalability: easy to scale<\/li><li>Popularity: dropped since AngularJS (Angular 1)<\/li><li>Open source: GitHub stars: 40,963 \/ Contributors: 732 \/ Issue: 2,162<\/li><li>Size: larger, resulting in longer load times and performance on mobile<\/li><li>Used on: Google, Nike, Forbes, Upwork, General Motors, HBO, Sony<\/li><\/ol>\n\n\n\n<p><strong><u>React:<\/u><\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Just a small view library<\/li><li>Has a Virtual DOM, which renders updates faster than Angular\u2019s Regular DOM<\/li><li>Uses JSX, which combines markup and logic in the same file (making components easier to read)<\/li><li>Components: emerging web components standard<\/li><li>Data Binding: one-way<\/li><li>You Can use ES6\/7 JavaScript, although you can use Typescript or Flow if you so choose<\/li><li>Mobile: React Native is faster than Angular\u2019s solutions<\/li><li>Testing:\u00a0Jest &amp; Enzyme<\/li><li>Learning Curve is lower, but you only get the view. Because of this, you\u2019re going to have to learn a slew of 3<sup>rd<\/sup>\u00a0party libraries. Ex. State management (Redux or MobX), Asynchronous calls (react-promise, react-thunk, or react-saga), etc.<\/li><li>Scalability: is more testable, so also easy to scale<\/li><li>Popularity: has increased exponentially<\/li><li>Open source: GitHub stars: 111,927 \/ Contributors: 1,242 \/ Issues: 287<\/li><li>Size: smaller than Angular, so a bit faster<\/li><li>Used on: Facebook, Airbnb, Uber, Netflix, Instagram, Whatsapp, Dropbox<\/li><li>React Fiber will increase the speed of React dramatically<\/li><\/ol>\n\n\n\n<p>Fuente:<a href=\"https:\/\/programmingwithmosh.com\/react\/react-vs-angular\/\">https:\/\/programmingwithmosh.com\/react\/react-vs-angular\/<\/a><\/p>\n\n\n\n<p><br \/>John Calderaio<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Do you want to learn about and discover the differences between React vs. Angular? Then keep [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":24331,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-24330","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sin-categoria"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>React vs. Angular: The Complete Comparison -<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"React vs. Angular: The Complete Comparison -\" \/>\n<meta property=\"og:description\" content=\"Do you want to learn about and discover the differences between React vs. Angular? Then keep [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-04T20:36:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-08-04T20:40:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/goldenti.com\/site\/wp-content\/uploads\/2020\/08\/1_24jd017n1JxzFU9dJHv12g.png\" \/>\n\t<meta property=\"og:image:width\" content=\"691\" \/>\n\t<meta property=\"og:image:height\" content=\"414\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Enrique San Vicente\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Enrique San Vicente\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/\"},\"author\":{\"name\":\"Enrique San Vicente\",\"@id\":\"https:\/\/goldenti.com\/site\/#\/schema\/person\/749bb2f32a11bb70e79d84325acc2c1a\"},\"headline\":\"React vs. Angular: The Complete Comparison\",\"datePublished\":\"2020-08-04T20:36:38+00:00\",\"dateModified\":\"2020-08-04T20:40:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/\"},\"wordCount\":3340,\"image\":{\"@id\":\"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/goldenti.com\/site\/wp-content\/uploads\/2020\/08\/1_24jd017n1JxzFU9dJHv12g.png\",\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/\",\"url\":\"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/\",\"name\":\"React vs. Angular: The Complete Comparison -\",\"isPartOf\":{\"@id\":\"https:\/\/goldenti.com\/site\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/goldenti.com\/site\/wp-content\/uploads\/2020\/08\/1_24jd017n1JxzFU9dJHv12g.png\",\"datePublished\":\"2020-08-04T20:36:38+00:00\",\"dateModified\":\"2020-08-04T20:40:32+00:00\",\"author\":{\"@id\":\"https:\/\/goldenti.com\/site\/#\/schema\/person\/749bb2f32a11bb70e79d84325acc2c1a\"},\"breadcrumb\":{\"@id\":\"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/#primaryimage\",\"url\":\"https:\/\/goldenti.com\/site\/wp-content\/uploads\/2020\/08\/1_24jd017n1JxzFU9dJHv12g.png\",\"contentUrl\":\"https:\/\/goldenti.com\/site\/wp-content\/uploads\/2020\/08\/1_24jd017n1JxzFU9dJHv12g.png\",\"width\":691,\"height\":414,\"caption\":\"FOTO\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/goldenti.com\/site\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"React vs. Angular: The Complete Comparison\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/goldenti.com\/site\/#website\",\"url\":\"https:\/\/goldenti.com\/site\/\",\"name\":\"\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/goldenti.com\/site\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/goldenti.com\/site\/#\/schema\/person\/749bb2f32a11bb70e79d84325acc2c1a\",\"name\":\"Enrique San Vicente\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/goldenti.com\/site\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e209f1cd39d3af8ad46156c58199ffe090a7c6c7ac325b48a29eb2ad8376a2cc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e209f1cd39d3af8ad46156c58199ffe090a7c6c7ac325b48a29eb2ad8376a2cc?s=96&d=mm&r=g\",\"caption\":\"Enrique San Vicente\"},\"url\":\"https:\/\/goldenti.com\/site\/author\/enrique\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"React vs. Angular: The Complete Comparison -","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/","og_locale":"es_ES","og_type":"article","og_title":"React vs. Angular: The Complete Comparison -","og_description":"Do you want to learn about and discover the differences between React vs. Angular? Then keep [&hellip;]","og_url":"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/","article_published_time":"2020-08-04T20:36:38+00:00","article_modified_time":"2020-08-04T20:40:32+00:00","og_image":[{"width":691,"height":414,"url":"https:\/\/goldenti.com\/site\/wp-content\/uploads\/2020\/08\/1_24jd017n1JxzFU9dJHv12g.png","type":"image\/png"}],"author":"Enrique San Vicente","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Enrique San Vicente","Tiempo de lectura":"17 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/#article","isPartOf":{"@id":"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/"},"author":{"name":"Enrique San Vicente","@id":"https:\/\/goldenti.com\/site\/#\/schema\/person\/749bb2f32a11bb70e79d84325acc2c1a"},"headline":"React vs. Angular: The Complete Comparison","datePublished":"2020-08-04T20:36:38+00:00","dateModified":"2020-08-04T20:40:32+00:00","mainEntityOfPage":{"@id":"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/"},"wordCount":3340,"image":{"@id":"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/#primaryimage"},"thumbnailUrl":"https:\/\/goldenti.com\/site\/wp-content\/uploads\/2020\/08\/1_24jd017n1JxzFU9dJHv12g.png","inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/","url":"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/","name":"React vs. Angular: The Complete Comparison -","isPartOf":{"@id":"https:\/\/goldenti.com\/site\/#website"},"primaryImageOfPage":{"@id":"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/#primaryimage"},"image":{"@id":"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/#primaryimage"},"thumbnailUrl":"https:\/\/goldenti.com\/site\/wp-content\/uploads\/2020\/08\/1_24jd017n1JxzFU9dJHv12g.png","datePublished":"2020-08-04T20:36:38+00:00","dateModified":"2020-08-04T20:40:32+00:00","author":{"@id":"https:\/\/goldenti.com\/site\/#\/schema\/person\/749bb2f32a11bb70e79d84325acc2c1a"},"breadcrumb":{"@id":"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/#primaryimage","url":"https:\/\/goldenti.com\/site\/wp-content\/uploads\/2020\/08\/1_24jd017n1JxzFU9dJHv12g.png","contentUrl":"https:\/\/goldenti.com\/site\/wp-content\/uploads\/2020\/08\/1_24jd017n1JxzFU9dJHv12g.png","width":691,"height":414,"caption":"FOTO"},{"@type":"BreadcrumbList","@id":"https:\/\/goldenti.com\/site\/react-vs-angular-the-complete-comparison\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/goldenti.com\/site\/"},{"@type":"ListItem","position":2,"name":"React vs. Angular: The Complete Comparison"}]},{"@type":"WebSite","@id":"https:\/\/goldenti.com\/site\/#website","url":"https:\/\/goldenti.com\/site\/","name":"","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/goldenti.com\/site\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/goldenti.com\/site\/#\/schema\/person\/749bb2f32a11bb70e79d84325acc2c1a","name":"Enrique San Vicente","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/goldenti.com\/site\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e209f1cd39d3af8ad46156c58199ffe090a7c6c7ac325b48a29eb2ad8376a2cc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e209f1cd39d3af8ad46156c58199ffe090a7c6c7ac325b48a29eb2ad8376a2cc?s=96&d=mm&r=g","caption":"Enrique San Vicente"},"url":"https:\/\/goldenti.com\/site\/author\/enrique\/"}]}},"_links":{"self":[{"href":"https:\/\/goldenti.com\/site\/wp-json\/wp\/v2\/posts\/24330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/goldenti.com\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/goldenti.com\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/goldenti.com\/site\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/goldenti.com\/site\/wp-json\/wp\/v2\/comments?post=24330"}],"version-history":[{"count":1,"href":"https:\/\/goldenti.com\/site\/wp-json\/wp\/v2\/posts\/24330\/revisions"}],"predecessor-version":[{"id":24332,"href":"https:\/\/goldenti.com\/site\/wp-json\/wp\/v2\/posts\/24330\/revisions\/24332"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/goldenti.com\/site\/wp-json\/wp\/v2\/media\/24331"}],"wp:attachment":[{"href":"https:\/\/goldenti.com\/site\/wp-json\/wp\/v2\/media?parent=24330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/goldenti.com\/site\/wp-json\/wp\/v2\/categories?post=24330"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/goldenti.com\/site\/wp-json\/wp\/v2\/tags?post=24330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}