A JavaScript library developed and maintained by Facebook. It is used in several of their applications, including Instagram and WhatsApp.
A JavaScript framework maintained by Google. It’s used in several Google applications, including Google Analytics and Firebase Console.
It only provides the View (V) from the Model-View-Controller (MVC) architecture where you have to add the Model and the Controller part by yourself using libraries of your own choice. React requires the user to decide how the code and hierarchy should be structured.
Is a full-fledged Model-View-Controller (MVC) framework. It guides the user on how the application should be structured. Angular also provides much more “out of the box” functionality including dependency injection, templates, routing, etc.- some of which will be discussed below.
Uses Virtual DOM: For example, if you need to change the user’s address –
which is written somewhere in between the HTML block of code –
a virtual DOM only looks at the difference in code between the previous and current HTML tags. Then it only changes the part where the update is required. This feature enhances React’s performance when dealing with a large set of data.
Uses Regular DOM: Using the example used in the left column: Using regular DOM results in updating the entire tree structure of the HTML tags until it reaches the user’s address. This feature inversely affects Angular’s performance when dealing with a large set of data.
Uses one-way data binding: In this type of data-binding, the user modifies the model state which then renders the change in the UI element, but if you alter the UI element, the model state does not change by itself.
Uses two-way data binding: This means that if the user makes changes in the UI element then the corresponding model part of the code modifies itself as well. If the user alters the model code, the UI automatically renders the corresponding change.
Instead of using a template, React uses JSX which is an XML like language built on top of JavaScript.
Uses various attributes and enhanced custom HTML templates to provide functionality to different DOM elements. The user must learn Angular specific syntax. For example, Angular directives such as ng-it, ng-model, etc.
For developing hybrid mobile applications, React uses a platform called React Native – which is also developed by Facebook. React Native allows the user to build their own components and hence build a truly native app. For example, it can be installed directly in your smartphones and can be used without internet connectivity.
For developing hybrid mobile applications, Angular uses the ionic framework which provides a powerful UI component library. The resulting app built using Ionic is a web app instead of a native WebView application, which allows the app to display content from the web directly inside the application.
The built-in container for dependency Injection, a software design pattern that helps in making the components reusable, in React is missing. However, it can be included by using external libraries and modules.
Uses dependency Injection which is a software design pattern that aids in making the components reusable, maintainable and testable.