Love at first Vue

osman hernandez
4 min readOct 28, 2016

--

You see a few months ago I was deeply in love with Meteor. Loved the simplicity, the isomorphic approach of building things (totally new for me at that time) and I really liked Blaze when I tried it out. What I really liked about Meteor was how fast I could start working. I could have my project structured out in a matter of minutes. I could build session management and user management in less than an hour and could get straight into coding the cool features of the app I had in mind , and it worked and it worked great.

I managed to build some cool stuff in a very short amount of time. I didn’t have to build endpoints to query a collection, I could directly do this from the client side code and it saved me a lot of time. Plus it had real time flow of information out of the box, so I didn’t have to worry about setting up sockets on my server etc.

Then time passed by and I heard about React. Now React was an entirely new thing on its own, just like Meteor was. What I loved about React was that it was bold and it offered a whole new way to build stuff. Most developers were kinda skeptical about React, because it combined HTML with Javascript, and it is something most of us web developers are used to have in different places. I actually didn’t mind this a tiny bit, the new thing for me when I tried React was this whole component based approach of building applications. Let me tell you I f*** loved it. Everything made more sense and actually having components wrapped in single files made my project structure a lot simpler.

After a while the Meteor docs got updated and I found out I could perfectly use React with Meteor. I immediately tried it out. I didn’t want to at the beginning since Blaze had been amazing for me the whole time. However I didn’t have components or the use of Redux to handle the state of my application and a bunch of other goodies React was going to give me. So I dove in combining React and Meteor and totally loved it. I highly recommend it and if you are having second thoughts about using React with Meteor, let me tell you one thing: you won’t regret it.

Moving past React and Meteor.

So I’ve been in this relationship with React, Meteor, Hapi and I tried Koa for a while, trying to keep things interesting and keeping myself busy and constantly learning. One day browsing twitter I read about Vuejs, went straight into their docs on github and found it to be pretty interesting.

After trying out some examples on their docs and building some small stuff for demo purposes I thought to myself: This is like React but easier and faster to build stuff with.

Vue CLI is pretty awesome, I had a starting project structure with unit tests, webpack and correct folder structure in a matter of minutes which totally saved me a couple of hours of work. It has the same component approach as React and it also combines the HTML and your Javascript in a single file just in a slightly different way than React does with JSX. The company I work with is pretty awesome, they give us developers 100% trust in the techs we choose for the projects. It’s really cool since this prevents us from being tied to a specific tech stack for an extended period of time ( we don’t get bored :D ). I got assigned to a new project, a pretty big one I must point out and we started discussing what tech stack to use. We decided on Hapi for our Nodejs stack but the crucial discussion was our frontend stack.

React and Angular were the first two to be brought up in the discussion. I have to confess I don’t like Angular and 2.0 was still on Beta when the project started so it was out of the discussion (yay!). IMO React has a considerably steep learning curve and we were told a new dev team will be joining the project mid-way and we had to take that into consideration. So I mentioned Vue. I told them how easy it was to pick up and how it gave the same component approach as React and how it had Vuex just like React had Redux.

For me it is pretty amazing how Vue gives you the ability to build amazing things with such simplicity. How Vuex offers the same as Redux and it’s a million times easier to pick up. Unit tests were kinda confusing at the beginning I must confess , but you get the hang of them pretty quickly so this shouldn’t be an issue for everybody. The project has gone amazingly well with Vue. Literally guys, zero complaints. The app is rendered fast, adding features is easy, state management is a breeze to handle with Vuex and unit tests are all well in place for both things: Vue components and Vuex logic added to the application. One last thing I have to mention is that the docs were amazing, we rarely didn’t find answers on the docs, so kudos to the Vue team for such an amazing framework.

I gotta say after trying out Meteor and React they weren’t love at first Vue.

--

--