DEV Community

Cover image for Things that I like better in Vue than in React

Things that I like better in Vue than in React

Jaydev Mahadevan on April 08, 2024

I’ve been using React for a long time, so when some says “Hey, you should try a different frontend framework”, my answer is always pffft, but I’m a...
Collapse
 
fatihkurtl profile image
Fatih Kurt

Believe me, I strongly recommend that you learn and use vue, you can produce projects much faster and simpler and get results, I have been dealing with software for 2 years, I have used svelte and react, but I have never seen such performance and simplicity as vue. Moreover, the easiest and most manageable state management among web frameworks is in vue.

Collapse
 
dnmyers profile image
Daniel Myers

Is 2 years a typo?

Collapse
 
guteres007 profile image
Martin Andráši

I am Vue developer. For small projects is vue ok, but if you have long term projects.... vue is not, what you want.

Collapse
 
waleedtariq109 profile image
Waleed Tariq

It's a myth among developers that Vue is only for small projects, but luckily, this myth has been debunked by Evan You (the creator of Vue). So, there is no such thing as Vue being just for small projects.

Collapse
 
fatihkurtl profile image
Fatih Kurt

In fact, long-term and large projects are better managed with vue, for example, a large admin panel for a company was made by me and my friend together, both state management and code readability and coding speed were a great advantage for us.

Collapse
 
rafaelmagalhaes profile image
Rafael Magalhaes • Edited

What makes you say this? I have multiple large projects at work with nuxt 3 and never run into any problems that Vue couldn't handle

Collapse
 
aminnairi profile image
Amin

You forgot to clear the interval on your second point.

<template>
  <p>{{ count }}</p>
</template>

<script setup lang="ts">
import { ref, onMounted, onUnmounted } from 'vue';

let interval;

const count = ref(0);

onMounted(() => {
  interval = setInterval(() => {
    count.value++;
  }, 1000);
});

onUmounted(() => {
  clearInterval(interval);
});
</script>
Enter fullscreen mode Exit fullscreen mode
Collapse
 
jaydevm profile image
Jaydev Mahadevan

Thanks for the code review :) Fixed.

Collapse
 
aminnairi profile image
Amin

You're welcome.

Not to seem a little bit picky, but you also forgot to store the interval variable in the Vue.js example.

Collapse
 
lundjrl profile image
James Robert Lund III

In the same boat here, years of React but starting to use Vue more.
I think Vue historically has improved from things React pioneered, no?

Which to me brings two things:

  • React with it's resources (Meta, FOSS, etc) will continue to drive the trends
  • Vue will continue to improve on these trends

What do you think? Thanks for writing the article :)

Collapse
 
jaydevm profile image
Jaydev Mahadevan

I think Vue historically has improved from things React pioneered

That was my feeling as I was learning Vue as well. Interestingly, the first versions of React and Vue came out around the same time. I think you can attribute part of it to the Vue team being able to learn from and improve on React's API, but it seems like they also have a different philosophy on how a developer API should look in general.

As a mature framework, React's patterns are more or less solidified. Lots of improvements have been released, but they are mostly under the hood.

I think React and Vue will both continue to evolve in a positive direction. As for trends and trendsetters, the cool kids have already moved on to new stuff like Svelte, Solid, HTMX, etc. :)

Collapse
 
dawosch profile image
Dawosch

HTMX looks cool first, but when you think about the problems it‘s no option in my opinion.

The idea behind HTMX reaches back to ajax or like web development with Java and jsf.

This results in Monolithe like systems.
And the biggest problem for me is, that you want to have interfaces for your systems. And with interfaces I mean rest endpoints so that you can get the raw data you want and make different UIs with different technologies.

When you work with HTMX I bet you don’t create separate endpoints for your system so no other system can work with the data your Plattform produces.

I stick to react :)

Thread Thread
 
nafaabout profile image
Nafaa Boutefer

I'm not sure I'd agree much with you in this regard. Exposing json endpoints could be a choice that might/might not be difficult depending on the way you built your backend. I use Ruby on Rails, and with that you can return a response to a request in whatever format is requested. All from the same route and from within the same place.

class Books < ApplicationController
   # Return all books
   # GET /books(.:format)
   def index
      @books = Book.all # can be filtered, paginated, and so on

      respond_to do |format|
           format.html # This expects to find a view under app/views/books/index.html.erb, erb a template engine that renders ruby inside html
           format.json # This expects to find a view under /app/views/books/index.json.jbuilder, jbuilder is just a json template engine than can render some ruby code to return json data
           format.xml
           .... and so on and so on
    end
Enter fullscreen mode Exit fullscreen mode

With this you can easily expose endpoints for different data formats.

Collapse
 
webjose profile image
José Pablo Ramírez Vargas

I'm on the Svelte boat, but my sentiment towards React is akin to this.

Collapse
 
gamadev profile image
Alex Maximiano

Hi!
Thank you for sharing this.

Collapse
 
lexlohr profile image
Alex Lohr

I think you should learn the concepts behind those frameworks rather than one framework. Then you are free to choose whatever framework fits your current task best.

Collapse
 
jaydevm profile image
Jaydev Mahadevan

100% agree - learning the fundamentals will always make you better. Great article btw!

Collapse
 
dnmyers profile image
Daniel Myers

1 - create-react-app isn't the recommended way to build react apps anymore anyway. I use Vite, personally

Collapse
 
walidov profile image
Waleed Asender

I couldn't agree more! Another point where Vue has excelled over React is the learning community. React lacks platforms like VueMastery.com or VueSchool.com!

Collapse
 
azimidev profile image
Amir Hassan Azimi

Nice blog

Collapse
 
shoaibjamil profile image
Shoaib Jamil

Its time to learn Vue too!