Pros of VueJS
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.
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.
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.
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
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).
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.
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.