Hacker News new | ask | show | jobs
by 0xRCA 2306 days ago
They're pretty similar. I feel like the best comparison is when you write bad React code you can tell, but there isn't really "bad" Vue code in the same way since it's so malleable. That obviously is both good and bad.

To me React is the preferable framework, it's much more opinionated and finicky but also more clear and thoughtful once you start approaching problems the way it requires. Vue is a lot like React, but it's extremely flexible and beginner-friendly. It doesn't really require a novice developer or someone coming from something very different like Rails or Angular to change how they think beyond the component structure itself.

Two-way data binding seems much nicer and easier when you first come to Vue, but has so many hidden pitfalls and annoyances that one-way completely side-steps.

That being said, I _despise_ DSLs and they should be avoided at all costs. They seem like a waste of brainspace and extremely fragile. It's my single biggest knock against Vue.

1 comments

What are you considering as a DSL in Vue? I think JSX in React is more of a DSL than anything in Vue.
JSX is a DSL with the ability to opt out into native JavaScript. So most complex JSX is a composition of JSX with JS driving the logical parts. Does Vue’s templating solution offer the same? (Genuine question, haven’t worked with Vue)
It does. You can do render functions similar to React (and optionally use JSX if you want to). It's not very common though except for library authors (especially if you need to do some clever stuff, regular vue templates can't handle all the corner cases that a raw render function can).
In my eperience, most people do use the templates, and especially in Vue 3, those templates are going to get compiled to extremely optimised render functions. But if you want or need to, you can also write your own render function directly, or indeed use JSX. Vue is remarkably flexible about that.