React.VFC の記事読んだ
そういえば前に React.VFC のことをメモったな〜と思って自分が書いたやつを漁っていたら6/20に書いていた。
ここで出ていたやつが以下の記事。
【検証】React.FC と React.VFC はべつに使わなくていい説 – KRAY Inc.
そういえば読んだなと思いつつもう一度読み返した。
- React.VFC が追加されてはいるが、v18 で非推奨 or 削除される可能性があるので使わなくてもいいんじゃないか
- というよりジェネリクスを使った汎用コンポーネントが作れないし React.FC も使わなくてもいいんじゃないか
- 名前空間付きのコンポーネントも作りにくいし
- TS のコンパイルでパフォーマンス改善される可能性もあるし型定義でコンポーネントであることを明示できるので、React.FC はまあ使ってもいいのかも
みたいな感じだった。
半年前くらいの記事なので今はどうなっているかわからないが、コンポーネントであることを明示したいために React.FC を使うかどうかはプロジェクトの好みで分かれそうな気がする。自分の個人開発だったらコンポーネントであることを型で明示したいので React.FC を使うかな〜という気もする(最近 React をあまり書いてないので意見が変わる可能性も大いにある)
あと名前空間付きのコンポーネントを作るときにごちゃごちゃするという話は、むしろ Union Types を使っていて分かりやすいなと思ったので意見は分かれそう。僕は型があったほうが良い派です。
というわけで React.VFC に関してはこの記事を参考にすると使わなくてもよくない?という感じになるが、じゃあ公式がなんのために React.VFC を用意したんだという気もするし、難しい。
結局 React.FC に戻すんだからいいじゃんといっても、v18 に上げる段階で React.VFC を React.FC にする作業が追加で入るだけな気がする(React.FC から optional な children が削除されるとのことで、children を定義しているコンポーネントはどんな型になるのかわからないが)
なのでまあ React.VFC は使うか悩むにしても React.FC は使っていいのかな〜というのが個人の意見