vuejs-review
Choosing a JavaScript Library for Web Apps: Vue.js [REVIEW]
mm
Leo Farias
Posted on: July 28, 2017
angular
Tags: angular frontend javascript polymer react vue
Tags: angular frontend javascript polymer react vue

Vue.js is a lightweight JavaScript library that focuses on the view layer of user interfaces.

A JavaScript library is a collection of functions pre-written in JavaScript that can be used instead of writing code from scratch for common functions.

Here is a review of Vue.js and what makes it ideal for web development.

What problem does Vue.js solve?

Using a JavaScript library like Vue.js cuts the amount of code developers need to write. Vue specifically can be used to add interactivity to existing websites.

Benefits of Vue.js

  • Real time state management
  • Virtual DOM
  • Reactive/composable view components
  • Two-way data binding
  • Transition effects system

Strengths

Vue is only the interface layer. It can be used as a feature within a page rather than building a complete Single Page Application (SPA). Also, it can be dropped into an existing project to add a degree of interactivity.

New Vue.js are often surprised by how easy it is to learn. Vue is close to ordinary JavaScript, so those with a grasp of JS can pick it up almost immediately. Programmers spend less than half an hour studying it before being able to code something simple. That simplicity extends to building and troubleshooting, as well.

Large frameworks impose their own form of order on developers, but Vue has few opinions of its own. Programmers are free to approach challenges in their own way. There are a wide variety of options for adding templates definition libraries.

A lot of JavaScript goes into an app, which leads to slower load times. Vue has a work around for this problem through an async components feature, resulting in “lazy loading” where components are only loaded upon request. This provides high performance on older browsers or in low signal areas.

Weaknesses

Though many people compare Vue to Angular, Vue is a library and not a full framework. It primarily addresses the view layer. As a default it doesn’t come with necessary features such as a router. Creating fast, flexible SPAs with Vue.js is possible, but only in tandem with supporting libraries.

The developer community for Vue is still quite small. As a result there aren’t many stable components, and neophyte Vue users may have trouble telling which version of Vue a particular library was built for. This problem should gradually diminish as Vue’s popularity grows.

Unlike Angular, which is maintained by Google, Vue has a single creator in Evan You. Many of the plug-ins are written in his native language of Chinese.

There aren’t many examples of Vue’s scalability. It’s possible to write large-scale apps with Vue.js, but having so few examples of scalability can be a concern for some users.

How does it compare to React, Polymer, or Angular?

React: Vue employs a virtual DOM like React and is also a view layer library. However, Vue has a gentler learning curve than React.

Polymer: Vue’s components are very much like Polymer’s custom elements. The biggest difference is that because Polymer, unlike Vue, is based on Web Components. Many browsers aren’t yet compatible with Web Components, so Polymer requires polyfills to adapt to those browsers.

Angular: Both Angular and Vue share two-way data binding capabilities. The programs interact well with each other, too. View is a simpler tool for less complex projects that don’t require the full power of Angular.

Real-life application

GitLab incorporated Vue.js into its front end towards the end of 2016. Frontend lead Jacob Schatz describes Vue as having “the perfect balance of what it will do for you and what you need to do yourself”.

Reddit News, a browser extension that displays updates and new posts from Reddit, was built using Vue as were applications like Expedia, Alibaba, Baidu, Nintendo, and Facebook Newsfeed.

Conclusion

For simple projects that call for high performance, interactivity, and ease of maintenance, Vue.js can be a better fit than more robust full frameworks.

If you need highly experienced front-end developers who know Vue.js, share with us your challenges and we’ll help come up with the right solution tailored to fit your needs.

Request a Consultation

Leo Farias is the CTO and Co-founder at Concepta. He received his MPS in Business of Art & Design from the Maryland Institute College of Art. With over 18 years of technology-focused experience, he plays a vital role in architecting and leading various mission-critical projects for world-renowned clients like Time Warner Music, Orlando City Soccer, Vasco de Gama and Corinthians Soccer Club.