Before selecting one of these frameworks to become adept in, it might be worthwhile considering their respective popularity. Angular (TypeScript) has 41,000 stars on Github, while Angular JS has over 59,000. React comes in near the combined total, with 112,000 stars.
In terms of demand for each, IT Jobs Watch shows that skills in 'React' are sought after as part of jobs with a median salary of £55,000 and that there are around 1,500 active job openings that are seeking this skill.
For jobs seeking skills in Angular or Angular 2, there are similar salaries commanded. And in the former category, there are more than 2,000 open job positions seeking this skill.
In terms of which websites use each framework, React wins on the big names, counting Netflix, Uber, Airbnb and Pinterest among its users. Angular boasts less traction, although is of course used by king of the internet, Google (although some say to a lesser degree than Facebook uses React, which could be telling).
Angular pros and cons
Angular differs from React in some important respects. For one, Angular offers a MVC pattern which breaks the project into three components: model, view and controller. Thus, a full framework is provided.
Conversely, React only takes care of the view component, and you need to come up with different ways of handling the model and controller components. React recommends you use it alongside Flux UI architecture.
These features of Angular can make it an easier programme to use for first-timers because there is more familiarity across different projects for developers working with Angular. Whereas, with React, each project will be different in terms of architectural and setup decisions.
You also receive much more heavy-handed guidance when using Angular on decisions about structure and functionality, which can be useful for novice users, but may feel constraining to more experienced developers.
Also to consider is that this additional functionality comes at a slight cost, the gzipped file size for Angular is 143k, while it is a much slimmer 43k for React.
React pros and cons
Instead of building templates, the emphasis is on building reusable components.
Another major point of difference between Angular and React is one-way (React) and two-way (Angular) binding.
Two-way binding means that the UI fields dynamically reflect model data, meaning that if one is changed, then the other changes with it. In the one way binding model that React adopts, only the model data can influence the app, and changes in the UI simply trigger messages to the model about the intent of the user.
In this model, data flow is 'unidirectional', which can make it clearer to understand and also simpler in that a two-way binding approach can result in some complex and mysterious side effects arising.
However, some argue that the two-way binding model is associated with cleaner code and is easier for the developer to deploy. Either way, React is seen as a pioneer of one way binding model and the unidirectionality of data.
React's looser, more flexible framework can also be seen as a boon to those who know what they're doing (although as noted in the section on Angular, this can also prove off-putting for inexperienced developers).
The library can be matched up to a range of different software packages, without any restriction, but of course, this means there is far less guidance for novices.
Angular might offer a better option to more inexperienced web developers, who are after a complete package and a more rigorous framework and guidance, while React might be the superior choice for more experienced developers looking for more freedom and control over each decision in the process.