My only wish now is for the TSX experience to be rounded out.<p>From a reactivity standpoint, Vue has a much more ergonomic/easy to use API for handling component state, effects, and computed values (in my opinion) than React.<p>But in the last 6-8 months, I've leaned away from Single-File Components because when you want to do something like define a bunch of small components, it's a lot more difficult to do than with multiple TSX functions you can chuck in one file.<p>So I've been using Vue with TSX, and the experience (in the last few months only, before that was pretty bad) is <i>okay</i>, but not as solid as you'd get with React.<p>I'm not the only one who must feel this way, because this exists and has a lot of stars:<p><i>"Reactivue: Use Vue Composition API in React components"</i><p><a href="https://github.com/antfu/reactivue" rel="nofollow">https://github.com/antfu/reactivue</a><p>Unfortunately, this is a weird stance to take in the Vue community, almost nobody uses JSX/TSX. Because of this, the development efforts towards it aren't as much a priority.<p>Overall, I'd rate the experience as "decent" and "totally usable", but I hope to see the DX for Vue's TSX community improve over the coming months.<p>---<p>Edit 2: Disregard the below, this already exists apparently<p>Edit 1: Having to write two type definitions for Component Props: one TS interface/type, and one as the JS object sucks. That's my one big complaint.<p>I know it's impossible because props need a runtime value but someone should make a plugin/babel transform to decorate the "props" key from the generic argument here:<p><pre><code> const MyComponent = defineComponent<MyComponentProps>
</code></pre>
Use reflection on "MyComponentProps" to set "props" key.<p>There's another comment below discussing this drawback too.