In recent years the JavaScript environment has advanced a lot in terms of frameworks is concerned as more and more new technologies are used on the client side (the browser) and we can say that more complex but save us a lot of work when working with the DOM.


That's why in this publication I will list the top 3 of the best frameworks in 2017/2018.


ReactJS

ReactJS is undoubtedly the most popular among these last two years but. Why do people like it so much given that it is only a "library" in ter?, Here are the advantages and disadvantages of this "library to draw user interfaces" as Facebook presents it in its official page .

Advantages:

1. It works based on " Com speakers" & nbsp; which are pieces of code that can be reused multiple times throughout your application and so keep the code much more orderly and understandable.

2. ReactJS uses a syntax that looks a lot like the well-known HTML, Facebook people call it "JSX" which has slight differences with HTML but after all it makes us very familiar to the time to work with this powerful library.

3. Rendering different components and states of our application with ReactJS is by far the best quality. With the help of the "Virtual DOM" & nbsp; ReactJS is very efficient and fast when it comes to manipulating the DOM since internally it makes a comparison between these two which allows it to only render again only you need to do it again, resulting in a better performance of our application.

Disadvantages:

1. ReactJS is just a library. Therefore, it only offers us the "visual" part, therefore, to be able to add systems such as routing on the client side or a client of http requests, we will have to install them as external modules.

2. It can be quite complicated if we integrate state containers such as Redux & nbsp; or Mobx & nbsp; if our application is going to be very large since it becomes very complicated when handling the state of our application with what React gives us.

3. There are many ways to do things in ReactJS so often finding the "right" way to solve a problem in our application can be quite tedious and confusing.


< h2> Angular

Maintained by Google, Angular is a giant that is well known and loved by its community, this framework helps us create super complex and scalable Business level applications. a very clean way.

Advantages:

1. Angular as in its previous versions has the "two-way data binding" & nbsp; which allows us to change data from our application immediately they are reflected in the view and vice versa this is a characteristic own Angular and as we develop with this Framework it is very easy to manipulate the rendered data.

2. TypeScript: which is a JavaScript superset that gives us data typing to our variables, making our code much more robust and thus avoid problems in the execution environment of our applications

3. AngularCLI which allows us to create applications and much more in a much faster and more efficient way which saves us a lot of work and configuration to do.

Disadvantages:

1. Angular uses the common DOM and current which makes the performance is affected since it modifies the DOM directly rendering everything again and again this makes ite less effective compared to React.

2. Angular's learning curve is very long, so learning it requires much more time than learning ReactJS or VueJS

3. Little flexibility when choosing which external systems we want to use.


VueJS

VueJS despite being maintained by a big one like Google or Facebook has nothing to envy to its corresponding frameworks /libraries & nbsp; and here I will explain the advantages and disadvantages of using this framework.

Advantages:

1. Easy to learn and syntax of very familiar objects by all JavaScript developers also works on the basis of components which makes it a very attractive framwork

2. Quite flexible and fast when rendering data on the screen

3. VueJS is a very light framework, weighing only 18kb after compressing it

Disadvantages: & nbsp;

1. It is not very requested in job offers which is why it is not usually used much in large projects.

2. It has been created by only one person, so his decision is the final one.

3. It is a very young framework for which your community is not very big and find solutions to errors can be challenging when working with Vue.


Conclusions

There is no perfect framework since each one serves different needs and my recommendation would be to close one as each of the mentioned frameworks /libraries are very good at what they do although I prefer ReactJS because its syntax and its way of working around components is simply fascinating and comfortable for me.