Remix.run Logo
sensanaty 7 hours ago

Vue is in my opinion the clear winner of all the frameworks in most regards for complex applications. It is:

- mature

- stable

- with the new Vapor mode its performance rivals Svelte and Solid

- has a great ecosystem (Vue Router, Pinia, VueUse being the shining examples here)

- it's extremely simple, and doesn't come with any footguns unlike React. It's very hard to end up in weird reactivity hell situations in Vue like it is in React.

- the documentation IMO is world-class and far superior to React's (and yes I am including React's new docs, I think they're absolutely terrible)

- it's FOSS and permissively licensed, not backed or controlled by any VC or company like Meta or Vercel

Vue is actually the winner in East and SE Asia (especially in China, also partially because Evan You is Singaporean), it's just that React has the US in a bit of a stranglehold due to Meta.

Not to say it's perfect before someone jumps down my throat here, it has things I wish would improve. Namely the TS experience could be better especially in reference to events, and there is some baggage in the Composition API regarding the use of `ref` vs `reactive`, though even the docs themselves these days tell you to just stick to `ref` unless you really need a reason to use `reactive`. The tooling is also a bit annoying at times if you stick to latest Vue versions, especially since I use WebStorm which can be slow to adapt to some of its improvements (like the shorthand defineEmits syntax that was introduced in Vue 3.2, but intellisense for that in WebStorm only came around when Vue 3.5 was already released). These are my 3 biggest gripes with Vue at the moment, and to be honest I can't think of anything else as someone who is responsible for some very large Vue codebases.