A former front-end student of mine (Zoe*) recently emailed me, and honestly wanted to understand why is it that I chose to code Swimm, with Vue.Js and not React:
“I just have one question for you: Why Vue?[...] I hope you're not rolling your eyes thinking - “ah no, another question about Vue”. Although knowing you and your passion, I'm sure you have a pretty strong opinion that could swallow me into becoming a Vue fan without even knowing it.”
Vue.js gained a reputation in recent years as an edgy must-know framework, but developers often question what the hype is about, how it relates to them and what web framework they should choose for their product.
While there might be some over-hype around the expected Vue 3 release due in Q3 2020, Vue has been gaining traction for a few years now, and it was just a matter of time for bigger companies like Netflix, Behance, Grammarly, Alibibaba, GitLab and others, to pick it up. Yet according to Stackoverflow’s 2020 developer React.js is still the most wanted web framework (Vue.js coming in second).
Vue.js vs React In a Nutshell
I first used Vue at IM Creator, a product I co-built originally with JQuery, and Vue was a breath of crisp air in my face. It was user friendly and progressive as it enabled me to use the framework for specific parts each time, without huge migrations. I could then for example create a menu in Vue, while the rest remained in legacy JQuery. What’s there not to like?
With Swimm (a new dev tool product) it wasn't even a question. I started our PoC with Vue.js and continued since then to our Beta self-served version. Several benefits should speak volumes to Startups these days especially compared to React:
- Vue is Lightweight and Flexible. It means it's a framework that feels more like a library than a framework at all. You can try it out first in small use cases in your app before going all-in.
- Vue is less intrusive than React and much easier to onboard. Project components and structure in Vue are similar whie projects in React each vary in architecture and implementation. I find that you can recognize Vue structures easily which is what speeds up onboarding time for any developer learning a new codebase. Vue becomes easier to maintain. This is especially true for smaller products.
- Readability is key - Vue is based on the most basic principles of the Web and is more readable than React. The html/css and JS are separate while in React everything is in JS.
- Indie at its core. While it’s my personal opinion, many developers appreciate tools that are not backed by tech giants (for example React backed by Facebook, and Angular by Google), but rather grows from a community and that is why it is highly oriented to developer needs.
When does React Trump Vue.js:
- React is still most wanted by the industry. That can be a problem for new coders. From my recent experience recruiting for Swimm’s growing dev team, Vue is still harder to recruit for because of React’s persistent popularity. By the same token, even if many of the larger companies are picking it up, it’s still part of side projects and not the main product. This is why for the ITC.tech web-dev Bootcamp, I created a React-based curriculum.
- Flexibility in some aspects. React still has the ability to split between the visibility of a component and maintenance of the component - and still provides more flexibility.
- Docs are light years ahead. The features Release in React is fast paced and as React docs are extensive and elaborate. [Try skimming through all of the 500 pages of questions on React on Stackoverflow].
To Sum it Up: A Note to Zoe
“ Hi Zoë,
I chose Vue for many reasons.
It is easy to integrate into existing projects (That was my need the first time I used Vue)
It is has a more readable syntax
It's really reactive (no need to explicitly call the set function)
It is not maintained by a big company (Facebook / Google)[...]
Give it a try :)”
Of course there is always a trade-off. These lessons learned reflect my personal views, insight gained from working in various startups and alongside numerous tech clients. As always, in depth research is required to make sure which framework best suits your business case. But if you’re looking for a flexible non-enterprise solution, Vue has proved easy to learn, scalable, user-friendly backed by a solid community that caters to other developers.
* Thanks for the inquisitive question, Zoe Cohen.