These past two days I have been diving into Vue.js. In Maximilian Schwarzmüller’s words: the child of Angular and React.

I will be honest, when I was at the Angular vs. React vs. Vue.js crossroad, I felt an emotional attraction for Vue.js. I don’t know why. Perhaps it was the logo’s cool green color or perhaps the fact that Habitica is built with Vue.js and that would have allowed me to contribute to Habitica’s repository (in case you haven’t followed along, I love Habitica!). None of the above? All of the above? Who knows?

What I Think So Far

Now like I said, it has only been two days, but so far I have: read halfway through the Vue.js documentation (which is excellent, but you know me, I also love documentation); watched Maximilian’s Vue.js Fundamentals YouTube playlist, played with the Vue.js CDN version on JSFiddle and the Vue CLI version locally; and listened to Maximilian talk about Vue.js on JavaScript Jabber’s episode 276. This has given me a fundamental or bird’s eye view perspective of the way Vue.js works.

I like it. A lot. And I wish I could objectively justify that my initial attraction for Vue.js was a serendipitous moment or a call from the Universe to pick Vue.js. But I can’t justify it 🙃.

Vue.js vs. React (I don’t know Angular)

Learning Vue.js is fun, straightforward and intuitive. At least more than React. Now I’m not trashing React. React has been my main tool for almost a year and I’m just trying to make a healthy comparison. They are different in some aspects and similar in others.

The CLI, for example, reminds me of React.

Passing down data through props reminds me of React too.

And they both work component-wise.

Differences? Vue has its own state manager and router, unlike React.

Also, the separation of concerns, in some manner. Some people (and non-people too, maybe?🤖) prefer CSS-in-JS practices with React. This is not exclusive to React but is it where I have seen it the most.

Normally, we use JSX in React. Vue.js preserves HTML in its “natural habitat”.

Among many other differences and similarities…

My Conclusion

In episode 276 of the JavaScript Jabber, Maximilian was asked why choose Vue.js? Because in the end, these frameworks (and library, in the case of React), solve the same problems 70%-80% of the time. It’s that 20%-30% that differentiates one from the other. It was a tough question.

In the end, it is a matter of preference, style or current situation. Vue.js has a smaller learning curve than the others, an excellent documentation and it is not constrained to the properties of a specific technology or company.

Are these pros or cons? That is for you to decide. I just know that I am having fun with Vue.js and I will continue to do so.