DEV Community

Cover image for React got me hired, Vue made me better
nebojsa91markovic
nebojsa91markovic

Posted on

React got me hired, Vue made me better

When I started learning FE, I began with React - like many others. It's the most popular library, and if you search for job opportunities there are abundant. And at that stage, you should have only one goal/priority, getting hired and gaining experience. So it's only reasonable to start with React.

I learned React through class component, and yes, they are deprecated. But understanding gave me deeper grasp of how React works under the hood (lifecycle methods, binding, rendering).

Eventually, I landed my first job working on Vue project. It wasn't a conscious shift, but it was a opportunity. Over time I came to appreciate Vue, and while writing this, I feel like a need to promote it. Especially through lens of someone who also mentored new developers in React, on bootcamp. Explaining React concepts to beginners while growing as a developer on Vue projects on my daily job gave me great reflection on both tools.

Vue Feels More Intuitive

First what I would point out is that Vue's design is intuitive. You don't need to adopt a specific knowledge or architecture to be productive, Vue just works. Option API provides clear structure (data, props, methods, computed, watchers)
I would say this separation helps writing more readable and maintainable code.

Vue 3 introuduced Composition API which gives even more flexibility and control, especially for complex logic. It's clean, modular. I would say Vue really evolved and scaled based on developers needs, while keeping being intuitive.

Less boilerplace, more clarity

Vue gives you build-in directives like:
v-if, v-else, v-for v-bind, v-on, v-model

You don't have to manage conditional rendering or loops using JSX syntax and ternary operators, that can get messy very quickly in React. Writing templates feels like writing HTML, which is easier for newcomers and more readable.
Vue gives v-model for two-way data binding. And if you need to build reusable logic like tooltip or tracking behavior, Vue supports custom directives which are easy to implement.

Vue is a framework (not just a library)

One of the big differences is that Vue is a framework, not UI library like React (probably heard this thousands of times). But what that means is that Vue is well integrated ecosystem.

  • Vue Router for navigation
  • Vuex (Vue 2) or Pinia (Vue 3) for state management
  • Transitions and animations built-in
  • Built-in reactivity that lets you track dependencies without extra code

Vue router, Vuex and Pinia are official packages maintained by Vue team, designed to work smoothly together

In React, you need to install third party libraries for all of these:

  • React Router
  • Redux, Zustand, Recoil, MobX...
  • React Spring, Framer Motion
  • Redux-Thunk, Redux-Saga for side effects

Growing as a developer means thing about maintenance

When you're junior, you want to get thing working, that's it. But as you gain experience, you start thinking about

  • How to keep your app lightweight?
  • How many packages do you depend on?
  • How often do you check npm outdated?
  • How maintainable is your code?

Don't get me wrong, you can handle all of this in React as well! But what I mean by this is that React gives you many options, but with 'great freedom comes great risk'. Without clear patterns or experienced leads, developers can write code that's inconsistent and hard to manage. Vue, on the other hand, makes it easier to write consistent, readable code.

Bundlers and developer experience

Vue's ecosystem also simplify tooling too. Vue CLI is still around, but the community has moved to Vite a light fast bundler created by the author of Vue himself.

Vite supports Instant startup, HMR, native ES module support, tree shaking...
It just works, you don't need to overengineer with Webpack configs and Babel plugins.

React, used to rely on CRA (officially deprecated), these days, the React team recommends using tools like Vite because of speed and simplicity. But it’s worth mentioning that Vite was originally built by Vue’s creator, Evan You, and while it supports React, it’s natively optimized for Vue projects.
Next.js is another popular option, but it comes with more abstraction and configuration overhead unless you know exactly what you're doing.

Tree shaking

Vue 3 is designed with tree shaking in mind. It's modular. You import only what you need, and you bundler removes the rest. Even Vue router and PInia are tree shakable.

React not so much. Many React libraries aren't tree shakable at all. That means your bundle can include a lot of unused code, unless you don't make extra effort.

Conclusion

Vue is not perfect. React has a massive ecosystem and huge community. If you are starting out, React is still a great choice. But as someone who's worked with both, I find Vue to be more productive, more redable and easier to maintain.

When company chooses React just because it's popular, they might just think about saving on hiring costs. But without good architectural guidance, the long term cost can be high. With Vue, it's easier to onboard new developers, establish consistent patterns, and focus on scaling you application and building features.

Vue deserves more attention not just from beginners, but from teams and companies who value clean, maintainable and productive development.

If you haven't tried Vue, I would strongly suggest, give it a change. You might end up loving it! :)

Top comments (0)