5 ms·
But why over vue? My biggest frustration has been how vue ends up moving in the direction of react. The original component architecture with the html template,
by digitaltrees 5mo ago
But why over vue? My biggest frustration has been how vue ends up moving in the direction of react. The original component architecture with the html template, JavaScript state and css styles in vue was so nice. Even the data fetching a url in the component was so intuitive.
- synergy20 5mo agoI'm using Vue and do not feel it's becoming react
- lwansbrough 5mo agoThis sentiment only really applies if you’re coming from Vue 1/2 to Vue 3. The Composition API is definitely more like React but makes some better design decisions that make it easier to work with than React. Such as implicit reactivity.
- 9dev 5mo agoIf anything, composition API has taken the good parts from React. Once you get the hang of it, it’s amazing. Everything clicks together, is easily composable, and fully typed-safe.
- sevenzero 5mo agoYup I'd sign this. We use Vue2 in a old codebase with options API and composition API in new projects. Both feel way better than anything I ever had to do with React (how many Hooks do you have to learn by now? 13?) Vue just has a very simple lifecycle and combined with a simple store like Pinia it's just really fun to work with.
- hajile 5mo agoVue doesn't solve problems better than React (and solves them worse if you have to learn all their proprietary files and DSLs instead of JSX), so there's not much of a reason to switch. The real discussion would be between React's vdom and something like Solid's signals.
- lwansbrough 5mo agoIt does, if you care about ergonomics. The reactivity model is simpler and arguably less error prone. It does have its own templating syntax, which is trivial to learn. No more cumbersome to learn than JSX, which is a templating language designed by the React team. Not sure why you chose to make the distinction between JSX and Vue’s DSL as if JSX wasn’t developed for the sole purpose of facilitating React’s virtual DOM.
- hajile 5mo agoJSX is <div>abc</div> turns into createElement('div', null, 'abc') and you can use that instead of JSX if you like or you can use something like hyperscript. Everything else like mapping or if statements is pure JS and works just like JS anywhere else in your app. Vue templates mean learning Vue's custom syntax for if statements, loops, dynamic attribute syntax (with its own gotcha), binding dot modifiers, data binding, and whatever else. It requires learning its entire custom directive system. It uses custom syntax for stuff like events too. I don't see this as remotely comparable with Vue being much closer to something like my time working with Angular 1 (a time I'd rather not repeat).
- Semaphor 5mo agoVue supports JSX, though to be fair, it’s not idiomatic and hence never shows up in any docs.
- 5mo ago
- lwansbrough 5mo agoI definitely sympathize with the feelings about the Composition API. Though I’ve moved past it because looking at React’s visible complexity (useMemo, useEffect - which apparently have changed names again since I last looked) - Vue has clearly chosen a superior API design.
- stefanfisk 5mo agoUnless I’m completely missing something, those hooks still have the same names and semantics as always?
- lwansbrough 5mo agoYeah you’re actually right I was looking at the API section instead of the Hooks section. Perhaps another demonstration of React’s verbose API surface.
- robocat 5mo agoA bit out of date, but I like the point-of-view of "The single most important factor that differentiates front-end frameworks" : https://mjswensen.com/blog/the-single-most-important-factor-that-differentiates-front-end-frameworks/ https://mjswensen.com/blog/the-single-most-important-factor-...
- rao-v 5mo agoTerrific read thanks for digging it up
- Lammy 5mo ago> A bit out of date > article just about to turn three years old JavaScript community never beating the allegations lol
- TonyStr 5mo agoI skimmed through it, and I think the only thing that is out of date is the section on `zone` in Angular. In october 2025, they changed to `zoneless` by default, which uses signals just like Vue. This was a long time coming imo, as the major criticism of Angular was how poorly update management was handled. Also Svelte runes aren't mentioned, as that came out three months after this post. Runes are essentially also signals. Basically every framework now has a concept of * State - change this and the framework automatically updates UI and triggers effects * Effects - functions that run when parts of state change (or triggered by signals) And almost everyone solves this with signals except for React.
- MrJohz 5mo agoThe other thing out of date is Svelte using compile-time tracking — Svelte now also uses runtime tracking, i.e. signals. At this point, I think React and Lit are the only major frameworks not using signals. And I'm not 100% sure about Lit.
- jameslol417 5mo ago
- patates 5mo agoI was deep in Vue 5-6 years ago, so much that I offered internal training for it and had sessions with more than 20 people attending. IMHO, React wins because you can just treat templates as variables. You don't need "slots" or other special stuff. It's simply more composable.
- onion2k 5mo agoThe company I work for uses Vue. I think the non-backwards-compatible move from Vue 2 to Vue 3 burned a lot of the current devs, so now they're stuck working on Vue 2 apps that are in maintenance mode with no viable case to clean up the mess by moving everything to Vue 3. The experiments to do it with Copilot mostly failed, although that was in the early days so another try today might work better. If we're doing something drastic to improve though, we might as well solve our "Vue devs are hard to find" problem by rebuilding it all in React at the same time.
- Ronsenshi 5mo agoI am in a process of upgrading fairly big Vue 2 app (technically 2 apps, where one is not traditional and the other uses Inertia) to Vue 3. It is a fairly painful process - I am using Codex and Claude as a first pass for converting things, but everything has to be checked manually and often fixed or rolled back to try again. Too often instead of "removing" piece of code that is not necessary anymore, AI would try to add a 100 line workaround for it because it would really rather add things than remove them. It is, however still a faster process than doing manual rewrite. Smaller components are a breeze to convert from older Vue 2 to Vue 3 composition API. Rewriting entry point app.ts with bunch of custom plugins was a horrendous experience that eventually was done manually. Move from Vuex to Pinia was also 50/50. Some things were easy, some things were not and had to be done manually. Then there's a process of switching from unsupported packages which is a whole other can of worms. Overall - if not for AI I'm not sure I'd have gone with an upgrade at this point. Yes it requires careful review and testing, but a ton of trivial stuff was done very quickly.
- gbuk2013 5mo agoI led a project to (successfully) migrate a Vue 2 to 3 app and while that was painful and expensive, I still find Vue more pleasant to work with than React once it was done. But TBH depending one team code discipline either could be fine or a nightmare. :)
- cyanydeez 5mo agoas long as JSX never becomes default in Vue, vue is still winning
- AbraKdabra 5mo agoAmen.
- geon 5mo agoIs Vue still magic, or can you actually write normal typescript?