フロントエンドエンジニアのためのHotwire入門では、Hotwireの方がNext.jsやReactよりもUI/UXが優れている点を具体的に解説しています。
その中ではページの表示速度についても言及しています。
詳細は上記のサイトを確認していただきたいのですが、ここでは一部をかいつまんでHotwire/Turboが速い理由を紹介します。
Turboはデフォルトで高速になっていますが、キャッシュを使用しますので注意が必要です。これをオフにしなければならないこともあります。その時は下記の属性やmetaタグなどが有用です(随時追加されますので、公式マニュアルをご覧ください)。
data-turbo="false": Turbo Driveをオフにします。最終手段です。data-turbo-prefetch="false": プレフェッチをオフにします。サーバ負担が気になるリンクにつけます。data-turbo-temporary: 特定のHTML要素がキャッシュされるのを防ぎます。<meta name="turbo-cache-control">: 特定のページのキャッシュ挙動を制御します。<meta name="turbo-visit-control" content="reload">: Turboで遷移してきた場合でもページ全体をリロードします。(Turbo Frameを使用した場合を含め)常にページ全体を描画したい場合や、React Router/Next.js/Inertia.jsの<Link>タグからsoft navigationしてきた際に使用します。<meta name="turbo-root">: Turboを特定のサブディレクトリに限定したい場合に使用します。例えばReactのページは/react/*、Turboのページは/turbo/*に分けられます。なおより細かく挙動を制御したい場合はturbo:clickイベントをハンドルして、Turbo Drive的な画面遷移(soft navigation)と通常のページ遷移(hard navigation)を切り替えられます。<meta name="turbo-prefetch" content="false">: このページのプレフェッチを無効にします。重たいリンクが多いページなどで有効でしょう。Next.jsのv14でデフォルトで積極的にキャッシュを取り入れましたが、v15ではデフォルトをオフに変更しました。その後にキャッシュの仕組みを大きく変更しました。現時点では動的コンテンツをデフォルトで積極的にキャッシュしたりプレフェッチしたりするような設計にはなっていません。