Despite being relatively new, the Vue.js framework is growing more and more popular everyday. Just last month it’s been downloaded over 2.4 million times. Last year it received the highest amount of stars on GitHub out of all JavaScript projects out there, demonstrating how much developers enjoy and appreciate it. The fact that many developers are thinking of trying it out, has inspired us to compile a list of the pros and cons of Vue.js.


Pros of VueJS

Size

We can’t talk the advantages of Vue.js without first mentioning its size. After gzipping it weighs only 18kB, compared to approximately 80kB for minified jQuery (depending on what version you use) and 29kB after gzipping. The entire Vue ecosystem is small and fast so choosing it means you are getting one of the best speed parameters available.

Readability

Programmers familiar with other JavaScript frameworks can pick up Vue very easily due to its simplicity and clarity. Vue’s syntax is simple and easy to understand. Experienced developers that start working with Vue find its structure very intuitive as the Vue components are pretty much a combination of HTML and JavaScript. Due to its simple structure it enables development of large scale templates and the developer can still easily track the blocks with any errors.

Documentation

Vue.js has a very extensive and detailed documentation which makes it fast and easy to learn. It allows for an unexperienced developer, with only a basic knowledge of HTML and JavaScript, to develop an app. This means that a beginner can handle complicated operations using only limited resources and it would still work well.

Reactivity

One of the best features of VueJS is its reactivity. Data binding between HTML and JS code has never been easier. Vue handles two-way reactive data-binding like a charm. When data is changed, the DOM is also changed accordingly. It’s perfect for SPAs. It’s perfect for any application that requires real-time updates.

Vue components

One of the best things about Vue.js is how it allows for an easy code reusability. Components and Views are smaller interactive parts of an app that can be easily integrated into the existing infrastructure, with no negative effect on the entire system. Therefore it is excellent for adding lots of small reactive components to an existing template. You can easily share states between components using a dedicated state manager called Vuex. Vue-router and Views both make creating a SPA a breeze.

Vue CLI 3

Earlier this year, Evan You has announced a new, redesigned version of Vue CLI - Vue CLI3, with many long awaited features, that make life of developers much easier. The changes include a new GUI, Plugin support, Instant Prototyping and a much easier Webpack configuration. You can read more about, why Vue CLI 3 is a game changer in the frontend development world, here.

Flexibility

JavaScript has always been considered as one of the most flexible programming languages available. With Vue, this flexibility is even more enhanced. You’re not limited to creating your components with “the only right way”. Vue framework isn’t opinionated, you can design the app structure the way you want it to be.

TypeScript Support

Vue has a native support for TypeScript. The team is adding new features and improvements with each update.

Browser devtools extensions

Vue team has released some really good browser devtools extensions for their framework. They let programmers check the current state of Vuex, components, views, manually change particular data or even take a deeper look at events. Fully utilized makes working with Vue a walk in the park.


Cons of VueJS

Small community

Vue is still very new and evolving fast. It doesn’t yet have the widespread support of its fellow frameworks as it is not as popular as React or Angular. It was created by a Chinese-American and the majority of the users are non-English speaking. Most of the coding is written in Chinese, which complicates things for English-speaking developers. Unfortunately, since it’s evolving fast, many tutorials that you find online may already be outdated. This means if you get stuck, it might take longer for you to find a solution. A corresponding issue might be that there isn’t a lot of libraries/extensions (yet).

(Over-)Flexibility

Sure it’s nice to have flexibility and many options within a framework that you’re working with. However, when working on a bigger project with many developers involved, this may become an issue. Over-flexibility can over-complicate a project and lead to more errors and irregularities within the code, which in turn would delay the project and increase the cost of development.


Conclusion

Vue certainly does the job it’s intended to do, and succeeds in some areas that other frameworks fail. If you’d like to read more about the state of Vue.js in 2018 check out our dedicated blog post here.