フロントエンドの未来はSSRに帰ってくるのか?
https://1.bp.blogspot.com/-gEXZUVjSQvw/WAXedWt_OZI/AAAAAAAA_FE/z1AkFjJA2Hs5d1zjIgDn5TRCbDVX6k3CgCLcB/s450/eto_tori_kamifubuki.png
かも知れないね~ という Deno 公式の記事が以下。
The Future (and the Past) of the Web is Server Side Rendering
内容として大枠は以下のような感じ
これまでフロントエンドの開発体験をよくするため様々なことをクライアントサイドで行う仕組みが生まれた
一方で、Webサイトとしてみたときに肥大化したJSの資産を評価するまでレンダリングできないデメリットが出た
そうなってくると、JSが評価されるよりも前に画面の初期描画ができるSSRは高速化の側面では依然として有用
クライアントサイドのを小さなアプリに分割して運用する Island Architecture などの考え方も出てきた
これまでとこれからの技術発展でWebフロントエンドはより良くなっていくはず
類似する実装
また Blazor のプロジェクト Blazor United がスタートしており、SSRを起点としたアプリに部分的に動的なコンテンツを差し込めるイメージが示され、Fresh の Island Architecture に近いものがあることがわかる。
加えて Astro や Qwik などでも、サーバーサイドから送信されるHTMLをより大きく活用し、フロントエンドアプリケーションの動的な要素は遅延読み込みするなどの工夫で最適化されている提案例が多くある。
現状の課題点と展望
初期描画が遅い問題と、ページを表示するために必要なクライアントサイドの資産がかなり多くなっている問題はメジャーどことのフレームワーク (Next.js や Nuxt.js)が抱えている課題の一つ。
Core Web Vitals などで SEO 評価指標の一部として採用されている可能性があり特に商業サイトを構築しているときには無視することは難しい。
とはいえ、いきなり Astro や Qwik を使った業務コードを書くことは意思決定的に難しいと思われるので、そういった用途を埋める機能が、今後 React や Vue などの使われ方の一部に盛り込まれると面白いかもしれない。
関連
Blazorの生みの親が「Blazor United」発表。SPAとSSRを1つのBlazorに統合し、共通のソースコードで記述可能に - Publickey
The Future (and the Past) of the Web is Server Side Rendering
fresh - The next-gen web framework.