The proliferation of JavaScript frameworks seems to be never ending at this point and which one to use can be hard to decide with some capabilities and levels of support, most the popular ones come down to preference. First let’s talk about why there are so many JS frameworks, JS was originally just a browser based language that was used to support events and other things of that nature but since it was not standardizes properly it was inconsistent across browsers making it difficult to use. Meaning that for any rich interactivity you had to use something like Flash, which we can all agree was not the greatest solution. Once JS was standardized, frameworks began to pop up everywhere with notable ones being Node.js allowing cross-platform capabilities making JavaScript more than a browser-based language and then jQuery. For a while jQuery was the clear framework to use as it had beat out all its competitors for the top spot but as preference and design changed so did the frameworks (1). New ones popping up all the time, we are now in a period where it is not one framework vying for the top spot but many frameworks that are most likely interchangeable in and it comes down to specific ease of use for one project to another and you can easily switch frameworks if needed down the road. Now let us talk about a couple popular frontend frameworks and the advantages and the disadvantages between them. Huge disclaimer I am not an expert and only have experience in React.js but have sourced information from others also might use frameworks and libraries interchangeably I know they are different but not the purpose of this post.
Angular/AngularJS
Both created by a team at google, Angular is just the newer typescript version of AngularJS, they are both popular and used commonly. Angular allows developers to write apps in a strict MVC in a simpler way using components then binding them to ngRouter and ngHttp, it is also a very secure framework that uses dependency injection to help protect your code (2). Although it is a little harder to learn than most frameworks, it is highly opinionated meaning there is usually only one way to do something this allows for cleaner code, and there for more readability between developers. Although angular has become much more modular in recent years, it gives you all your tools out of the box which is nice but can result in longer compile times (3).
React
React created by Facebook, which is a very popular library. It is an extraordinarily lightweight framework which make it a little easier to get started but not as easy as some. For advance functionality you will have to get additional packages. React allows you to design your web application in a lot of different ways compared to something like Angular which allows it to be easier to use but can affect readability at times and can affect security. React uses components that are rendered to a virtual DOM tree (3).
Vue
Vue also created by google is kind of the in between of popularity and is overall considered the easiest to learn most likely in part because it is the most lightweight framework, for basic functionality you’ll need some packages but it compiles fast and is easy to get started. Vue keeps the logis and the markup separated well which allows for better readability and understanding. The lack in power might be noticeable in some advanced features but for personal projects and so on it might be the ideal place to start (3).
I hope this brief intro into JS frameworks helped and helps you choose a framework in the future.
Sources: