Why I am moving away from Vue.JS

As developers, we need to be up to date with all technologies, and it wasn't different with me. My main stack most of the time was .NET, building API's and services using ASP.NET MVC and WebForms (yep). From this experience, I often received some opportunities to work using pure JavaScript clients, and my first movement was dive into jQuery world.

On the first sight, 2011, it was a great mess to build something to web. See, I was living in a world full of Explorers and an incipient new Google browser, make an app compatible with all this wildness was... wild.

jQuery came to me as a freeze and fresh breeze of air. I could iterate the DOM with ease, make XmlHttpRequest calls (I am feeling myself too old saying this), and add new dynamic content to the page, in a way Razor couldn't make it. Of course, I've put jQuery everywhere. Of course, it was a mess.

No longer after that, I started working with AngularJS. It solved a lot of problems I had back then, such as maintain my state and front synced and up to date, componentize all app's sections in (in an ideal world) small controllers and "components", and I could use dependence injection, with I always loved, but I didn't have the opportunity to work with until then. Angular came to me as a freeze and fresh dush shower, and I saw it was good. Of course, I've put AngularJS everywhere, migrating existing code to, and making new projects in. Of course, it was an enormous mess.

Then came Google, the same Google again, saying all my knowledge in its framework would be kind of unusable, since they were building a new version of AngularJS, not being Angular at all. Even now I have no idea why they did this, instead of building this new framework with a new name. Why on Earth they needed two Angulars? On my mind, Angular today has to many angles, it could be called "circle" :)

I went to the web and search for the next step then. React was already a thing, growing in a ridiculous pace. But I have some problems back then I was indeed looking to solve: maintain my current codebase (migrating from jQuery to AngularJS was pain enough to me), reuse most of my skills I had in AngularJS way-of-life, and be in the middle way between AngularJS and React. Vue was in its infancy, so it was not easy to pick it and learn.

I did some small project’s (to-do apps) using Ember, Aurelia, Knockout. Gosh, I even tried Backbone. When I decied to visit the Vue’s documentation, was a love at first sight. Easy to learn, all integrated in components, directives (yes, I still have some kind of compassion with), and in a day I was able to put code in production learning alone, without knowing someone working with Vue.JS. I was in version 0.12, and I was starting freelancing for real, so I thought my clients wouldn’t care about the technology stack. They just wanted the job done.

Was a long two years inside this platform and community. I went to some conferences and saw people doing very well-crafted code, learned Typescript (what can we do to make Typescript the de-facto standard on browsers?), made some money and I had the opportunity to puot back effort on my backend devtools, using Linux on my primary machines, and .NET Core powering all. Of course, I’ve put Vue.JS everywhere, and was beautiful, was not a mess. I had full control in all my code, was a perfect world.

Then came a client and offered me a job to make and cross-platform mobile app. They already had jobs in Angular and Vue.JS. I know enough to now put efforts on Ionic or other hybrid solutions, at the same time I love my Linux machine, and I didn’t like the idea to use a MacOS. Native Vue was not huge, and all of this left me with one alternative.

I didn’t like React at the time. I came from Vue, it was everything so easy to build, and React is more abstract, more direct, more… pure JavaScript. I sit down and studied lifecycle, components, props and state, reactivity, HOC’s, Redux. Then I learned the Expo wasn’t React, just a framework over a framework, with builds natively. Some weird concepts I felt into but it was good.

Today I feel myself a over the average to great React developer. I did some others React Native apps, went to web, did some great apps using sockets, Firebase, a brand-new API Node-powered, dashboard apps, and I get traction. And then, when I was relaxed about the life, the universe and everything, one of this last Vue projects of mine come back to me. And scared me.

Vue.js launched a new version of its CLI, using Webpack 4. My old project automatically became incompatible with itself. New components were not that easy to be added, and modified. The code became a mess a lot faster. And the market as a whole doesn’t care.

The mobile is literally eating the world. New projects are created in a pace never seen before. And the wages are only increasing, freelancing positions are being created faster and faster, and React won this by far. Vue.JS maybe still good to work these days, but not at my team, not mainstream here in Brazil, and for sure, not mobile.

The same me two years ago would cry saying these words, but today I’m fine with this. And consequently, I am moving back to backend, using Nest.JS and ASP.NET Core all the way up, but this is for another day :)

Learn Something New Everyday,
Connect With The Best Developers!

Sign Up Now!

& 500k+ others use Hashnode actively.

Gijo Varghese's photo

Ygor Lazaro Nice one! We also moved from VueJS to ReactJS! I'm writing down a detailed blog post.

Show +2 replies
Milica Maksimović's photo

Editor in Chief @appsignal, former Community Manager @Hashnode

Hey Gijo Varghese, if you're up for it, maybe we can collaborate on such an article through Hashnode Originals. cc Sandeep Panda Syed Fazle Rahman

Sandeep Panda's photo

Co-Founder, Hashnode

Gijo Varghese We are aiming to produce high quality and well researched articles through Hashnode Originals. You can find the detailed announcement here: hashnode.com/post/hashnode-originals-open-f..

Let us know if this interests you! :)

Faiz's photo

Its not vue fault. Its the community. There will be XYZ, ZYX God knows whats next. You are indirectly referring to the terrifying pace of JavaScript and how the packages are pilling up on top of each other. How there are 7x tools for the same thing.

The horrendous dependency chain of npm, God! it makes me angry when i see bable, webpack, gulp, grunt, preset this preset that for a very basic purpose, it makes it difficult for a dev to catch up. If you want to use import instead of require install 20 other dependencies!! What? I am not exaggerating. If the community would focus on ONE thing and not making a package for every God damn mosquito in the air things will be so stable. Not coding on the frontend anymore.

Show +1 replies
Askar Hussain's photo

Founder, alMinaret

I think these npm deps and the craziness need to be managed in a better way for this to sustain. What you said Faiz is exactly my turn-off as well. So many things to setup ahead of time and then when it comes to deployment there's a hell to cross...that's one of the major turn-offs for me, other than that I love working within the dynamics of React.

Steven Ventimiglia's photo

Creative Technologist & Sr. Front-End Developer

Vue.js feels more like a library to me. That's why I love it.

IMO: JS + compiling = Oh, those wacky kids.

Lazar Ljubenović's photo

Oh look a "I didn't like a change so I did a change anyway" blog post!

Ygor Lazaro's photo

Coffee in. Code out.

Kind of! :D

Pete Art's photo

Hello Ygor and thank you for this great article. I am just about starting a platform migration of my ASP.NET/jQuery app and looking for best choice. For some time I thought backbone is the right way to go, then I discovered Vue and thought I love it. After reading your post I started having my doubts. Would you recommend something, given my dev platform will be Visual Studio and server-code C# ? Thanks a lot !

Ygor Lazaro's photo

Coffee in. Code out.

Hi Pete, great you liked my article! You seems to be something like me, I also did my movement from .NET (C# mainly, VB in my teens ages). Then I moved to front development in 2011, at the time jQuery, after this AngularJS, VueJS and React, in this order.

From my humble opinion: if you need to go fast at development and finish some kind of job, keep stick with .NET, do you job, make you make and see where your project are going. For example, when I need to test an idea or mock some solution, mainly I do it in .NET, despite I am a very strong JS/TS developer.

Are you studying for a new position? So in this case I recommend you go to React. Is the market-standard-for-today-and-goes-on. Sadly from my point of view, since I particularly don't like React as a paradigm.

Vue.JS had its moment, but particularly I think it's passed. I still maintain some Vue.JS projects in production, but I strongly recommend against it, since it has a minor popularity, despite its developers community, and they are studying make some changes that will make Vue.JS a lot closer to React than before.

If you wanna go hipster, you always have the chance to use Elm #justkidding.

But, if you really want to make things done, do it .NET all the way down, and go injecting React when needed. This is the way I am doing for my personal projects and works like a charm. For my clients, I still mostly do React and RN. There's no better alternative (again, in my POV).

I wish you success! :)

Pete Art's photo

Hi Ygor, great to hear from you. I like your article very much because it shows you have hands-on experience and understand the consequences of our choices. As you honestly pointed, in old days no matter what we tried we ended up with...mess. This is the status of the code I am trying to migrate to something new. It is ASP.NET/jQuery spaghetti-style mess. Anyway, I greatly appreciate your insights , especially about Vue. As per your recommendation, I am going to take a deeper look at React it because it might be the right choice. Although, you say "I particularly don't like React as a paradigm". This means a lot. I've been working in settings like that and never liked when I've got to use tool/technology that I am not fond of. I wish you the best and would love to see an article about React - if you plan writing such... Cheers!

G.'s photo

…and for sure, not mobile.

Ever heard of NativeScript-Vue?

Theofanis Despoudis's photo

You only use what it's best tool for your use cases. For example React has a bigger Ecosystem than Vue in Mobile Applications unless you plan on doing something like PWAs only.