Angular and React are both popular when it comes to developing web applications. However, React's popularity has increased more than Angular’s recently.

Let’s take a look at the performance, speed, bloat, and code details of each framework and how these may have affected their popularity.

What Is Angular?

Angular is a popular web development platform you can use to build dynamic web applications or single-page applications. It first arrived in 2010 as AngularJS, and developed into Angular 2 in 2016.

Like many other frameworks, Angular makes heavy use of components. These are essentially reusable HTML elements that you can create. You can then import and use these custom elements on several pages throughout your app.

Companies that use Angular include Nike, UpWork, Forbes, HBO, Sony, and Google. Popular apps built using Angular include PayPal, Upwork, Microsoft Office Home, and Overleaf. Several Google products, including Google Voice and Gmail, also use the framework.

What Is React?

React is a JavaScript library also used for developing web applications. Like Angular, React is also based around the use of components.

Each component manages the state of its data and re-renders the app based on changes to these states. This makes React very good for creating apps with dynamic, constantly changing data.

Many social media companies use React, including Facebook, Instagram, and Skype. Other companies that have built apps using React include Uber, AirBnB, Netflix, and Amazon.

Popularity Between React vs Angular

As seen on React's Github page, React has 185,000 stars, 1,500+ contributors, and more than 9.5 million users. Angular's Github page shows 80,500 stars, 1500+ contributors, and more than 2.2 million users.

According to Xing, Huang, and Lai, React has had 9.2 million downloads compared to Angular 2 with 2.6 million downloads as of May 2018.

While both platforms have their strengths, this data shows React is the more popular of the two. These two frameworks handle things like performance, app structure, or module imports differently. Such differences may help explain their respective popularity.

Language

Angular uses a combination of HTML, CSS, and TypeScript. The HTML files display the UI elements, the CSS contains styling, and the TypeScript contains the code logic.

Visual Studio Code open with Angular Project

React uses JavaScript and CSS. A JavaScript file can contain the code logic representing a component. The component may also have a corresponding CSS file.

In the JavaScript file, you can return the HTML code associated with that component.

Visual Studio open with React Component JavaScript file

Modules and Imports

You can install and set up Angular using the Angular CLI tool. You will also need to install Node.js. During this process, you can configure the app to include routing, a StyleSheet type, or even Bootstrap.

The Angular app comes with several modules out of the box. Although this makes the app more bloated, it also means it offers more default features that you don’t have to install individually.

Visual Studio code open with package.json showing Angular modules

React also requires Node.js as well. You can run a simple command in the command line to create the React app.

After that, you’ll have to manually add any extra modules that you need. This ensures you only have the modules you need in the app, causing it to be less bloated than Angular.

Learning Curve

Angular has a specific structure in terms of using TypeScript and its own Angular functions. This means that if you want to learn Angular, you’ll also need to learn the TypeScript language itself, alongside the Angular framework.

TypeScript and JavaScript are extremely similar in their syntax. However, Angular has a particular structure that it follows within the TypeScript file. For example, it defines its own order of code execution, using its AfterViewInit or ngOnInit functions.

With React, developers who already know JavaScript can jump straight in and start building web applications. The learning curve for React mostly includes understanding how state management works.

Speed and Performance

React loads an app faster in the browser, compared to Angular. This is because it uses a virtual DOM, a more lightweight implementation that just generates DOM elements based on the components that you write.

Scale

According to Xing, Huang, and Lai, React is suitable for small to medium-scale web applications. Angular, however, can be very powerful when it comes to larger, more complex applications.

They also suggest that though Angular is more complex to learn, the additional functions it provides can make it more suitable for larger commercial projects. This can include projects that require the developers to solve difficult business problems.

Specific Code Implementation

Both Angular and Reach have their own unique features.

Angular provides you with the ability to use built-in structural directives such as *ngIf or *ngFor. An interesting example of this is if you needed to add a for loop inside an HTML file to create a div for every user.

        <div *ngFor="let item of array"></div>

React uses state management. Each component manages the state of the data and re-renders the app based on changes in these states.

        const [item, updateItem] = useState([]);

Data Binding

React uses one-way binding, meaning you can only pass data in one direction (data either goes from the code logic to the HTML elements or vice versa).

        <Row title="Website" fetchUrl={requests.url} />

Angular uses two-way data binding, which means you can pass data both from the HTML file to the TypeScript file and vice versa, using a single variable. This can be very useful for complex apps.

        <input [(value)]="someValue" type="text">
    
        export class AppComponent {
   someValue = "defaultValue"
}

One caveat with this is that it causes Angular to constantly watch for updates in both files. This creates additional loading and rendering times. The amount of data that Angular needs to check increases with the complexity of the application.

The Enduring Popularity of React

Both React and Angular are popular when it comes to developing web-based solutions. Both have their strengths and specific functionalities.

Angular itself can take more to understand and get started. However, it can be an extremely powerful tool when it comes to web development.

React seems to be the simplest and fastest platform you can use to get started in building web applications. This is likely the main reason why it stands as the development platform with the most downloads and highest usage.