Angular was released for public use by Google as AngularJS, in 2010.
It was developed keeping in mind single-page applications (SPAs). But what are SPAs? SPAs are pages where most of the information stays the same, and a few of it changes. For example, the headers and footers of a website generally stay the same, while the body keeps changing. It was being developed by internal teams in Google and external contributors.
It follows a Model View Controller (MVC) architecture, which helps developers manage the UI of the applications along with the database.
It offers two-way binding, which allows instant synchronization between the model and view.
It has an in-built dependency injection.
The demand for AngularJS has led to huge numbers of developers in the market who know AngularJS. Due to it providing two-way binding, unit-testing, and decisive UI, the time to code is drastically reduced for creating applications.
ReactJS was developed by Facebook in the year 2013.
It was developed because Facebook Ads were becoming difficult to administer, so a need arose to devise a good fix for it.
ReactJS uses the virtual DOM where the representation of UI is kept in memory and synced with “real” DOM, consequently enhancing performance regardless of the volume and frequency of changes in content.
It allows changing data to renew the view automatically. It allows agile rendering and is SEO friendly.
The development cost is lower because of its popularity among developers. There are many developers with all levels of knowledge about ReactJS. ReactJS also provides detailed documentation and offers rapid development with small APIs.
VueJS was created by Evan You and released in 2014.
It is also used for building UI and single-page applications. It has learned from its predecessors and selected the best features from AngularJS and ReactJS.
VueJS is also used to build single-page applications. It is just 18Kb in size! This means it will have a positive impact on SEO, similar to React.
VueJS has adopted the characteristics of AngularJS, which is its two-way binding. VueJS has small components with data that get updated from time to time.
The cost of developing with VueJS is significantly lower because of the low entry barrier for the developers that require the basics of HTML, CSS, and JS as a prerequisite. Therefore, you can hire developers with very little to no experience and training.
There is a heap of such frameworks, and each one has its own set of special abilities which they can perform. For example, as React is a library unlike Angular, which is a complete framework, it is, therefore, easier to learn React than Angular. But Angular has more built-in functionalities than ReactJs.
To choose from one of them, you should first understand your requirements and the end goal that you want to achieve for a given problem.