A new Vue on life
I have had the opportunity in a professional setting to work with a number of the various JS frameworks that are out there and recently I have caught the Vue bug.
Vue.js has moved its way up to what I would consider the modern top 3 frameworks now sharing the spotlight with Angular and React. While it’s adoption ratio is still a ways behind the other two, it has a pretty lively community there is a lot of development of 3rd party libraries. It is impressive for a framework to have moved so far without the corporate backing of mega giants like Google and Facebook.
From a technical perspective Vue.js is easy to pick up and quite a delight especially if you are experienced in the AngularJs world. I appreciate what the Angular team did when the created what is the modern Angular framework and while I feel it has its strong selling points Vue.js feels more like the natural evolution of AngularJs. It takes what was there and expands on it adding many concepts and tools one finds in React.
One thing I greatly enjoy about Vue is the single file component concept. You write your html, js, and css (or whichever flavor of these your prefer) all in the same file. One thing that really grated on me in developing with Angular or AngularJS was all the jumping around to different files when working with the same component or view. This also keeps it simple for a testing perspective because all you need to know test this file is in one place.
Another feature I really enjoy is the Vuex store. Now Vuex is a plugin to Vue and you do not need it to begin writing in Vue, but it almost feels if you are developing anything that is more than one or two simple pages, you will want to utilize some sort of global reactive store. Vuex is a simpler implementation in my opinion to the rxjs workflows that were built into Angular. It takes less time and code to add to the store and its easy to lazy load modules on the fly as needed. Now this can be double sided. It is almost too easy to put things in the store and use it as a kind of global catch all. I have seen quickly how this can lead developers to misusing the store and and causing significant speed decreases in their applications. I do however feel that quicker development time outweighs the risk in this case.
I think another selling point of Vue is its ease of use. It takes very little knowledge to get running in Vue outside of a general understanding of ES6 practices. There are a few directives and things to get to know but most of it is quite simplified for the developer. Now you can use Vue with TypeScript or pull in the Vue ESLint plugins to make your Vue code abit more opinionated, but at the end of the day those are choices that you or your team will make. One of my big resistances to Angular is how TypeScript and extra knowledge is forced on the developer. I think there is a place for frameworks that require a steep learning curve (lets face it C# .NET isn’t going anywhere) especially in enterprise development. I do think there is a value in allowing the coder to choose when they want this bloat though. Vue makes it self very friendly to the beginner or junior and I think that is very valuable.
In short, Vue I think is a great framework that is continuing to evolve. It has a wonderfully responsive community behind it and I would recommend it to anyone just wanting to do some coding over a weekend or something. I think to just knock out a POC or to build a small app its the ideal choice of today’s frameworks. When you start talking about larger scale applications, I do think their is still a place for Vue, but I think this becomes more of a conversation of what do you value most.












