← All Posts
VueReactJavaScriptOpinion

Why I Switched from React to Vue & Nuxt

After 3 years of React, I made the switch to Vue 3 + Nuxt. Here's what I discovered — and why I haven't looked back.


Why I Switched from React to Vue & Nuxt

This is a post I've been meaning to write for a while. After spending three years in the React ecosystem — hooks, context, Next.js — I made the move to Vue 3 + Nuxt in early 2025. Here's my honest take.

The Turning Point

It started with a freelance project that needed a CMS-friendly frontend. I tried a few options with React/Next.js, but the configuration overhead was getting out of hand. A colleague suggested trying Nuxt 3 — and within a week, I was hooked.

What Vue Does Better (In My Experience)

1. Template Readability

Vue's Single File Components are just... cleaner:

<template>
  <div class="card">
    <h2>{{ post.title }}</h2>
    <p>{{ post.description }}</p>
  </div>
</template>

<script setup>
const props = defineProps(['post'])
</script>

Compare that to JSX with hooks — Vue wins for readability, especially in teams.

2. Nuxt Auto-Imports

In Nuxt, ref, computed, useRoute, and your own composables are automatically imported. No more 10-line import blocks at the top of every file.

3. File-Based Routing That Just Works

pages/about.vue/about. That's it. Dynamic routes with [id].vue. Nested routes with directory structure. It's intuitive.

What I Miss from React

Honestly? The ecosystem. npm has more React packages for specific use cases. And some complex state management patterns feel more ergonomic in Redux/Zustand.

But for web apps, portfolios, blogs, and most SaaS products — Vue + Nuxt is my go-to now.

Final Verdict

If you're React-curious about Vue, give it a 2-week trial project. You might be surprised.