編集

React Compiler

React Compiler が OSS として公開されました。Babel plugin として現状提供されており、IR/SSR への変換などは Rust で実装されています。

react/compiler at 149b917c8a4022aeaa170c4fb826107dd2333c68 · facebook/react

どのような変換が行われるかは React Compiler Playground で試すことが出来ます。

React Compiler Playground

合わせて React Compiler のドキュメントも公開されました。

React Compiler – React

次のような状況のようです。

  • フィードバックを受けるために OSS 化された、まだ実験的な機能。
  • Vite と Webpack つまり Remix や Next.js でも動く。
    • Babel プラグインで提供されているので、Babel を使うように設定すれば使えるのは当たり前ではある。
    • Next.js は、既に option での提供を準備しているようです。
    • Babel で提供されたことに対してネガティヴな意見が見られるが、コアは Rust で分けて実装されているため、他の手段での提供も十分に考えられる。
  • react-compiler-healthcheckeslint-plugin-react-compiler を利用することで、正常にコンポーネントやライブラリを最適化できるかを確認できる。
    • React のルールに従っている、で問題なく動作することが条件のようです。
  • 段階的に利用するために、ディレクトリ毎や、オプトインモード(アノテーションモード)によるコンポーネント・フック毎の React Compiler の導入もできる。
    • compilationMode: "annotation" オプションを渡すことで、use clientのようにuse memoを付けたコンポーネントやフックのみに適用できる。ただし、これは早期採用者を支援するための機能とのこと。
編集