ふと、Vue3 で tsx な関数コンポーネントを定義しつつ、stateful に扱えるのかというのが気になった。今年の頭くらいではできなかったはずだが、VueMacros にある機能を用いれば可能なのでは?という話。VueMacros は Vue の RFC 的なコンパイラマクロ機能を実験的に試せるライブラリで、reactivityTransform が本体側から削除されて VueMacros でのサポートとなったことで名前を知った人もいるかもしれない。 今回使うのは以下のマクロ。 https://vue-macros.sxzz.moe/macros/setup-component.html defineSetupComponent を使えば、ts,tsx ファイルで他のマクロ(defineProps等)を記述できる。ドキュメントにはないが、script setup に変換されるのであれ