Tanner Linsley氏は10月26日、TanStack Redact 0.2.0を公開した。ブラウザでReactのAPIを実装し、描画と更新に必要なJavaScriptを減らす。アプリケーションコードは変えず、ビルド設定に足すと、既存のReactのimport、コンポーネント、フック、依存がブラウザではRedactを通る。
対応はTanStack Start、Vite、Vinext、Next.jsだ。VinextとNext.jsはApp RouterとPages Routerの両方で、Pages Routerだけのアプリも含む。サーバ側のレンダリングとServer ComponentsはReactのまま残り、ルーティング、キャッシュ、Server Actionの通信もフレームワークが持つ。Redactが受け持つのはハイドレーションとクライアント描画だけだ。
同梱サイズは、同じ小さなアプリのクライアントJavaScriptとCSSをgzipで合計した値だ。Startは109.3KBが62.3KB(43.0%減)、Viteは68.3KBが20.1KB(70.5%減)、Vinextは138.1KBが98.8KB(28.5%減)、Next.jsは175.6KBが139.9KB(20.4%減)。任意機能を切ると、例ではStartが59.8KB、クライアントだけのViteが12.6KBまで下がる。遅延チャンクを含むビルド全体の数字で、1ページの転送量を保証するものではない。
Vinextのベンチマークを6回走らせた結果は、154.9KBから115.5KBへ39.4KB減った。本番ビルド時間はほぼ同じで、開発時の起動は少し速かった。ブラウザ上の描画速度は測っていない。
Redactは同期描画で、Reactのタイムスライシングや中断できるレンダリングを持たない。中断付きのtransition、保留中のフォーム、楽観的更新は対象だが、重い描画は入力を止め得る。忙しい画面で試し、互換ガイドに書かれた境界を確認する必要がある。