It’s time to shed some light on Vue.js
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.
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.
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 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
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.
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 upgrading features with the use of Magento services and Vue.js. During 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 simple to start. The result of the UI was satisfactory and very user-friendly.