4 Things Vue.js Got Right

Anthony Gore
Nov 10, 2016 · 4 min read

Whether you’re suffering from Javascript fatigue, ES anxiety, post-webpack stress disorder or any other kind of web development malady, the last thing you probably want to do now is look at another Javascript framework.

But the focus, simplicity and flexibility of Vue.js might just make it the hero you need. Coming a bit later to the game in 2014, Vue has had the advantage of being able to pick and choose from the best parts of its predecessors.

Note: this article was originally posted here on the Vue.js Developers blog on 2016/11/14

Focus

Vue has a narrow use case: building user interfaces for the web. The creators know that there are already plenty of libraries out there to help you iterate arrays or handle promises and HTTP requests, so you won’t find any of that duplicated in Vue.

This focus allows Vue to avoid the bloat of other frameworks. But just as importantly, the minimal surface areas of its API allows its creators to focus more on improving Vue than maintaining it.

That said, Vue does have supporting libraries like vue-router, for routing, and vuex, a Flux-inspired library for state management. These integrate deeply with Vue but are completely optional.

Here’s a great example of Vue’s focus ethos in action: Vue creator Evan You announced last week that vue-resources, the official AJAX library for Vue, would be retired from the Vue organisation. The reason: AJAX is not a problem domain requiring deep integration with Vue and the time spent bug fixing it would be better spent on more integral parts of the stack.

Simplicity

Adding Vue to your web project can be as simple as:

<script src="https://unpkg.com/vue/dist/vue.js"></script>

And you’re ready to start. No polyfilling, no transpiling, no wrestling with a bundler.

Vue code has simplicity built into its design. Look at this “hello world” example:

<div id="app">
{{ message }}
</div>
<script>
new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
});
</script>

Even those with only a basic understanding of HTML and JS — perhaps designers and juniors on a team — can get a sense of how Vue code works. For more experienced developers, this simplicity allows immediate productivity.

If the success of jQuery is anything to go by, Vue’s standing as the simplest of the frameworks could take it a long way.

I .. really care about the approachability part of Vue, which is rooted in the belief that technology should be enabling more people to build things

Evan You, creator of Vue.js — Between The Wires

Flexibility

If you want to write a quick and easy app that will run straight from the browser, Vue has got you covered. If you want to build a more sophisticated app with ES6, JSX, separate component files, routing, bundling etc, then Vue can deal with that too.

Vue is focused regarding what it can do for you, but not opinionated about how you do it. For example, if you have a preferred method for writing your templates, Vue lets you do it in any of these ways:

  • Write your template in an HTML file

This flexibility makes it easy to switch to Vue because React developers, Angular developers, or developers new to JS frameworks would all find Vue’s design familiar.

Copying competitors

A lot of what Vue is getting right is what its predecessors already got right. Just ask an Angular developer. Vue’s directives copy Angular’s right down to the syntax: to bind an input to application data in Vue you use v-model just like Angular’s ng-model.

As a relatively late mover, Vue has been able to copy what works in other frameworks and avoid what doesn’t. Vue’s state management library Vuex has obvious inspiration from Elm. Vue’s components are very similar to Polymer’s customer elements. In its latest version, Vue is now rocking a virtual DOM à la React.

Vue is earning its place by being a great solution if not an original one.

Where Vue Is Lacking

Before you dive into Vue consider these potential drawbacks:

  • Vue doesn’t yet have the support and wide spread adoption of it’s fellow frameworks. There are far more resources for React, from NPM modules to Stack Overflow answers.

Vue.js Developers

Helping web professionals up their skill and knowledge of…

Sign up for Vue.js Developers Newsletter

By Vue.js Developers

A weekly publication with the best Vue.js news and articles. Take a look.

By signing up, you will create a Medium account if you don’t already have one. Review our Privacy Policy for more information about our privacy practices.

Check your inbox
Medium sent you an email at to complete your subscription.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store