A Brief History
“HTML is great for declaring static documents, but it falters when we try to use it for declaring dynamic views in web-applications. AngularJS lets you extend HTML vocabulary for your application. The resulting environment is extraordinarily expressive, readable, and quick to develop.” – Angular.org
Developed by Facebook, React was initially released in 2013. Facebook uses React extensively in their products (Facebook, Instagram, and WhatsApp).
“React makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes.” – React.org
Vue.js is the youngest member of the group. It was developed by a former Google employee – Evan You – in 2014. Vue has seen a substantial shift in popularity, even though it doesn’t have the backing of a large company.
Angular has a steep learning curve, considering it is a complete solution, and mastering Angular requires you to learn associated concepts like TypeScript and Model View Controller (MVC). Even though it takes time to learn Angular, the investment pays dividends in terms of understanding how the front end works.
React offers a pretty comprehensive Getting Started guide that should help one set up React in under an hour, and give you some basic samples to play around with. The documentation is thorough and complete, with solutions to common issues already present on Stack Overflow. React is not a complete framework and advanced features require the use of third-party libraries. This makes the learning curve of the core framework not so steep but depends on the path you take with additional functionality.
Vue can be easy to learn but difficult to implement. provides higher customisability and hence is easier to learn than Angular or React. Further, Vue has an overlap with Angular and React with respect to their functionality like the use of components. Hence, the transition to Vue from either of the two is an easy option. As much as Vue is easy to learn, its extreme flexibility means that you can create poor code that may be difficult to test and debug
So, which one should you use? Depends on your application. If you need a plethora of libraries and documentation, and the ability to seamlessly integrate other frameworks, React and Angular are the way to go. Need a flexible architecture that you can bend to your whim but is still simple to use and understand (sometimes), Vue might be for you.