Appearance
Why I'm writing about React (from a Vue seat) β
I've spent a good chunk of my frontend life in Vue land. React is still the default in a lot of job posts and codebases - so here we are.
I'm not here to convince you that Vue is "wrong" or that React is somehow more pure. Both get UIs shipped. Both have sharp edges. If you already think in components, reactivity, and routing - you're not starting from zero. You're translating.
So.. Why bother? β
A few boring, practical reasons I've run into:
- A lot of product teams standardized on React years ago and never looked back
- The ecosystem around data fetching / forms / design systems is huge (sometimes too huge π )
- Next.js sits in a similar "framework that owns the whole app" space as Nuxt
- Interview loops and freelance gigs still ask for it a lot
If your Vue stack is happy and nobody is pushing you - cool, stay. This guide assumes you want (or need) to move.
What this is (and isn't) β
This is a path for someone who already knows:
- SFCs / Composition API (or at least Options API)
- Vue Router
- Probably Pinia (or Vuex, if you're vintage)
- Maybe Nuxt
We cover:
- Vite + React SPA - closest mental model to a Vue SPA
- Modern app pieces - Router, Zustand, TanStack Query, a bit of testing
- Next.js App Router + RSC - when you want the Nuxt-shaped world
We skip Redux deep dives, Tailwind courses, and "build a design system in 12 weeks" energy. I've decided Zustand is enough for the store chapter - Pinia vibes, less ceremony.
Honest tradeoffs β
Coming from Vue, a few things will feel worse at first:
- No template compiler holding your hand (
v-if/v-forclarity) useEffectdependency arrays will bite you- Re-renders instead of fine-grained reactivity - different instincts
A few things will feel fine or better:
- JSX is just JavaScript - conditionals and maps are⦠normal JS
- The hook ecosystem is massive
- One language mode in the component file (once you get used to it)
As you can see - it's not magic. It's a different set of defaults.
Next up: the mental model shift. That's the part that actually saves you time.
Best,
-- Ε.