It’s time to shed some light on Vue.js

The Goodies

Size and speed

Vue.js is extremely lightweight (only 18kb minified + gzip). Vue also outperformed many other frameworks in terms of speed. Vue relies on the use of virtual DOM to manipulate and render the view. And because of its size and weight, Vue can render and update thousands of DOM elements per second. Every time there is a change, Vue only has to render the different part between the Virtual DOM and Real DOM (not the Real DOM all the time). This leads to improvement in the performance of the UI.

HTML template

Yes, you heard it right. Vue.js primarily works with native HTML and CSS. HTML template plays the main role in writing dynamic markup in Vue. The best part is that all components (HTML, CSS and JavaScript) can be stored in a single file. This helps developers to work with components at ease and with only a little effort.

Simplicity

Vue is relatively simple to start. Plenty of developers claim that Vue is easier to learn than jQuery. Vue is super approachable, very extensible and comes with great documentation. The approach to Vue is pretty progressive, some developers use it as jQuery replacement. Also since compiler is non-compulsory in Vue, all you need is few fundamental technologies (the basics of JavaScript, HTML, and CSS) and you can start. This is extremely beneficial to beginner and intermediate developers who crave hands-on experience and prefer to launch project in minimal time.

 

Integration

There is no hindrance for Vue to integrate with other frameworks such as React. Vue components can also be integrated within Django, Laravel and WordPress. Easy integration turns Vue into the favorite of many web developers when it comes to build a variety of applications including both single-page applications and complex web applications.

The CLI

Vue CLI3 probably draws the most attention in the astounding rise of Vue’s popularity. Some developers claim it is even better than Angular CLI. With its new plugin-based architecture, Vue CLI3 provides Vue project with fast access to the optimum build tools from the front-end world, incorporating them seamlessly with sensible defaults. Concurrently, it allows simple configuration and customization to fit developers’ specific needs.

Vue CLI3 allows plugins to be added at any point in the development life-cycle with zero configuration plugins. Also it is very easy to upgrade and offers developers the opportunity to customize their own plugins and presets. With only one single .vue file, developers are able to prototyping a project.

The bad

The reactivity caveats

If you notice in the documentation, there are some reactivity caveats, for example, setting an item from an array directly (e.g., by using this.items[key]=value) or adding a new data property. This brings controversy sometimes depending on the use cases.

Lack of some common solid plugins/components

Vue.js is still developing and lacks support for some crucial plugins. Developers need to get flexible and look for support from other languages, for instance, React. Many times when using Google Maps, developers need to resort to vanilla JavaScript. Similarly, with Google maps, calendar, vector maps and so on, there are some components for that but are hardly maintained.

Lack of support and small community

Vue.js is new kid in town so it is understandable if the community is not that great yet. It’s still in evolving phase. The Vue members interacts with each other mainly on Discord. This chat based community is not popular yet and pretty isolated from other official forums. Besides, the development team is also small and modest so it requires time to get corporate backing for the platform. Especially a large number of community member are non-English speakers and many parts of the coding is written in Chinese language. This causes barriers to many international developers.

The ugly

Too much flexibility

Vue offers developers many options within the framework. It doesn’t force you in the framework. However, when working with large projects with tons of code and huge number of developers involved, over-flexibility could easily over-complicate a project and lead to more bugs, resulting in project delay and development cost escalation.

It’s hard to find Vue developers

Vue.js community is still not as large as Angular or React and the response is often written in Chinese which is not that popular yet to many English speaking countries. It’s difficult to find developers with rich experience with Vue. Meanwhile developers with expertise in Vue.js are also put in tough case when seeking employment.

All in all, the question is “Is Vue.js the right framework for you?” At Bac Ha Software Co., Ltd, we have Vue developers as well as experience working with Vue.js.

One of our most significant project was a project whose aim was to build an eCommerce platform for farmers, cultivators and agriculturists to exchange, promote and sell their own products. We helped our client with augmenting their website and upgrade features with the use of Magento services and Vue.js. While working in the project, our team found Vue extremely helpful in terms of improving the UI performance, especially in terms of rendering single page application. Our team can code at ease and get flexible with team members since Vue structure is easy to start. The result of the UI was satisfactory and very user-friendly.