Angular is a framework, that is, it is an all-in-one solution that has all the necessary tools to build an application, which means that everything you have to do “in your way” but you don’t worry about having to find a way to implement various functionalities.
React is a library that only takes care of the view, which implies that the rest of the tools to make an application must define which ones to use (routing, state management, HTTP, etc.), but this achieves greater flexibility, Since to be able to define all the components separately you can change libraries that develop in the future and improve the application without major alterations.
A little history
Angular uses a basic MVC architecture, we have Components for the view, Router for the control layer and services for the backend layer. The paradigm used is component-oriented.
React uses an architecture called Flux, which is similar to MVC as it also contains its model, view and controllers but is designed in a unidirectional data flow. The data travels from the view through actions and arrives at a Store from which the view will be updated again. The Store would be the closest thing to the application model. Save the data and application status. There are no methods in the Store that allow you to modify the data in it, that is done through dispatchers and actions. The implementation of this architecture is done by Flux / Redux
React has an advantage at this point since it implements the Virtual DOM, which is a representation of the DOM that allows you to compare the active DOM with the new resulting DOM. From this comparison arise the least number of instructions to transform a DOM into another, which makes it have a better performance than Angular.
Templates and themes
Angular is supported by Google, React is supported by Facebook.
As Angular is maintained by Google and React is powered by Facebook, it is almost certain that both will continue to grow. Both offer major updates every six months and launch new versions frequently. Also, they establish depreciation periods with the required advance notice and the corresponding information to make the migrations. In the case of React, it is important to keep in mind that due to the versatility it presents and integration with other libraries for the development of joint functions, it is necessary to ensure in migrations the compatibility levels of these additional libraries with the new versions.
In general, both have so far maintained a good Community that provides support and support, in the workplace the demand for both frameworks/libraries is divided, although in general it is indicated that Angular is more used in large companies with stricter rules and React in start-ups due to its flexibility.
Angular is a robust framework, it includes everything you need to start an application but with little flexibility, its learning curve, in general, is not so short and can be a bit confusing at first if you do not have a view of languages such as java and .net by the syntax that it manages, It manages a good support for its creators (Google) and the community in general.