Angular vs React – When to use what

Share on facebook
Share on google
Share on twitter
Share on linkedin

Ohoy, religious grounds ahead!

I have been working with both Angular and React applications and have been working for companies that have switched between using Angular or React. From outside, the two frameworks can look like substitutes as they are both single page application framework, but in fact, they are quite different and the switching cost from one to another can be huge, so you might want some knowledge to back up the decision. This is the blog post I wish I had read before making decisions on when to use what.

In short, the main differences between Angular and React is that Angular is a very opinionated framework that comes with many official libraries and a lot of official tools like the CLI. React is, compared to Angular, a very lightweight framework that doesn’t provide much more out-of-the-box than a component structure and the change detection technology. Libraries and tools like IOC, services, routing and form handling, unlike Angular, you have to either implement yourself or get from unofficial third-party libraries.

When to use Angular

Angular is very opinionated and contains lots of tools out of the box. This can be a huge time saver for corporations that have many projects as it is very easy to scaffold a new Angular app with the CLI that has everything a single page application needs to start building an app. You could, of course, use React for this also if you did build this template yourself and maintain it, but that would require just that. Also if the projects have many different people working on them and especially external consultants, the benefit of an opinionated framework is that if you have learned it once, you can be very efficient in a new project from the first day because you are working with the same standard.

When to use React

React is great for bigger custom applications as you are to either build the helper modules like routing, forms, and services/state management or find unofficial third parties. For some that want to build these modules themselves might enjoy not using an opinionated framework.

Because less tooling comes out of the box with React you would often implement the lower level parts yourself with vanilla JS.

Because React basically encapsulates Javascript in a component structure a good use case for use React is when migrating vanilla js application into a SPA application. When migrating JS applications to a single page application I would recommend using react because it is easy to fit the previous logic in React modules without needing to rewrite it, unlike the opinionated “Angular way”. With Angular, it is a “no-go” to use tools like JQuery for manipulating the dom as this should instead be done in the platform agnostic Angular way. Of course, it’s not ideal to use jQuery in React applications either, but because React components are simpler and less opinionated, I would prefer to use React for javascript wrappers.


There is no real difference in performance from Angular and React.

Angular is doing change detection with events and React is using a virtual dom. Both are implemented in a fairly efficient way. Both can be used efficiently or inefficiently which will have a much bigger say on how an app performs.

Making the decision

Making the decision whether to use React or Angular is about the fit in the organization. If your organization is bigger and you have many different projects it can make development and maintenance easier by streamlining the organization front ends to use Angular. If your organization is smaller and is creating fewer different front ends, eg. a SaaS startup, you might like the simplicity and flexibility of React. Because your only need to maintain one front-end project, you can easier manage a more custom project, instead of using a couple of standard libraries, like it is the case with a standard Angular cli app.

Do you want to become an Angular architect? Check out Angular Architect Accelerator.

Related Posts and Comments

How to Set Up Git Hooks in an Nx Repo

Git hooks can be used to automate tasks in your development workflow. The earlier a bug is discovered, the cheaper it is to fix (and the less impact it has). Therefore it can be helpful to run tasks such as linting, formatting, and tests when you are e.g. committing and pushing your code, so any

Read More »

The Stages of an Angular Architecture with Nx

Long gone are the times when the frontend was just a dumb static website. Frontend apps have gotten increasingly complex since the rise of single-page application frameworks like Angular. It comes with the price of increased complexity and the ever-changing frontend landscape requires you to have an architecture that allows you to scale and adapt

Read More »

The Best Way to Use Signals in Angular Apps

Since Angular 16, Angular now has experimental support for signals and there is a lot of confusion in the community about whether this is going to replace RxJS or how it should be used in an app in combination with RxJS. This blog post sheds some light on what I think is the best way

Read More »

High ROI Testing with Cypress Component Testing

Testing is one of the most struggled topics in Angular development and many developers are either giving up testing altogether or applying inefficient testing practices consuming all their precious time while giving few results in return. This blog post will change all this as we will cover how I overcame these struggles the hard way

Read More »

Supabase and Angular: A Powerful Combination for Building Web Applications

Supabase is a cloud-based backend as a service (BaaS) platform that provides developers with a set of tools and services for building scalable and secure web applications.It’s much like Firebase but Supabase provides a PostgreSQL database which solves some of the inconveniences with a NoSQL database such as Firestore.For that reason, Supabase has now become

Read More »