クライアントオンリーな SPA フレームワークについて

経緯

Remix SPA mode が登場したので試しに触ってみたがこれじゃない感に苛まれたので記録しておく。

クライアントオンリーな SPA の傾向

Nextjs static exportsRemix SPA mode、いずれも期待していたものとは結構ずれている。ビルドすると各ページのコンポーネントが別ファイルに分けられ、ブラウザで url 遷移が発生するとサーバにページのコンポーネントを取得するリクエストが飛ぶ。さらにコンポーネント内で使うデータを拾うのであれば2度のリクエストが飛ぶことになる。もはや SPA をやめて完全なサーバサイドに移行したほがマシなのではないだろうか。リクエストの無駄撃ちである。

js ソースを1ファイルにでき上記2つの機能性を保持しているフレームワークはなく、実現するには、react + react router + react helmet async を環境内で使うしか方法がない。ただ、Remix SPA と react router の管理者が同じなので切られる可能性も少なからずある。