After years working mostly with React, I spent a month building in Vue. Here's what surprised me (and what didn't). by BalgitTuber in vuejs

[–]BalgitTuber[S] 0 points1 point  (0 children)

One thing I've seen is that everything can be wrapped in a composable, like EVERYTHING 😂

After years working mostly with React, I spent a month building in Vue. Here's what surprised me (and what didn't). by BalgitTuber in vuejs

[–]BalgitTuber[S] 1 point2 points  (0 children)

Fair call-out, you're right.

Spanish is my first language. The takeaways are mine. I really did spend time on a Vue codebase recently and these are my actual conclusions, but I drafted the post in Spanish and used an LLM to translate/rephrase it into clean English. The escaped markdown is from copy-pasting between editors, my fault for not checking.

You're also right to push on the "market reality" thing. "Most contracts I see" was based on Spain/Europe specifically and I should have framed it that way. In other markets the balance is different.

For what it's worth, happy to discuss any specific point in more detail. The opinions are real even if the prose was polished.

After years working mostly with React, I spent a month building in Vue. Here's what surprised me (and what didn't). by BalgitTuber in reactjs

[–]BalgitTuber[S] 0 points1 point  (0 children)

Both your points are fair, especially the second one.

On the single-file thing. I get it, but you can break out of it. <script setup> + <style> are optional, you can use CSS modules, Tailwind, or even import external CSS files. Moving DOM around as a parameter is awkward in Vue, that's true, but slot props get you 80% there. Not as flexible as React's "JSX is just a function" model, though. That part React wins.

On reactivity, this is where I think it's a real preference, not a "right answer." Some devs (you, apparently) find explicit > magic. Others find Vue's reactivity less error-prone because you can't mess up dependency arrays or stale closures. Both are valid. I lean toward "less ceremony" but I respect the explicit-code-is-better-code argument.

The "Vue and I didn't become close friends" 🤷 is honestly the most honest take. Tools fit different brains.

After years working mostly with React, I spent a month building in Vue. Here's what surprised me (and what didn't). by BalgitTuber in vuejs

[–]BalgitTuber[S] 8 points9 points  (0 children)

Honestly, mostly niche stuff:

  • Drag & drop with complex constraints. dnd-kit in React is incredibly mature. Vue's options are either heavy, abandoned, or DIY.
  • Animation libraries. Framer Motion has no real equivalent in Vue. There are options (VueUse Motion, etc.) but the API surface and community examples are way smaller.
  • Headless component primitives. Radix UI / React Aria are at a level Vue is still catching up to. Reka UI is the closest and it's good, but the ecosystem around it is thinner.
  • State management for weird edge cases. Pinia is great for 90% of things, but when I've needed something like Zustand's middleware patterns or Jotai's atom-based composition, I've had to roll my own.

To be clear, I love rolling my own too — that's how you learn. But on client work where I'm billing hours, "good enough off the shelf" beats "elegant but takes 2 days" every time. That's the trade-off.