用語集 最終更新 2026.07.04

アイランドアーキテクチャ

アイランドアーキテクチャ(Islands Architecture)は、ページの大部分を静的なHTMLで返し、対話が必要な部分だけを「島(island)」として切り出して、その島の分だけJavaScriptを読み込む(ハイドレートする)設計の考え方です。Astro が代表的に採用しており、Astroの看板となる仕組みとして語られます。

まず押さえたいポイント

  • 土台は静的HTMLのまま返し、動く部品だけを島にする
  • SPA の全ページハイドレーションと違い、ブラウザに送るJSを島の分だけに抑えられる
  • 島をいつ動かすかclient:load / client:idle / client:visible などで制御できる
  • 島の中身は ReactVue・Svelte・Solid など好きなUIフレームワークで書け、混在も可能

どんな場面で使うか

ブログ・ドキュメント・LP・コーポレートサイトなど、大部分が静的で、動く部分が限られるページで特に効きます。記事本文は静的HTMLのまま、検索ボックスやコメント欄だけを島にすれば、島以外にはJSが届かず、ページが軽くなります。client:visible を使えば、画面に入るまでその島のJSを読み込まない、といった遅延もコンポーネント単位でできます。

よくある誤解や注意点

「島を増やすほど速くなる」は誤解です。島は動かすためにJSを読み込むので、島(特に client:load)を増やしすぎると逆に重くなります。速さの源は「島を最小限にし、残りを静的HTMLで返す」点にあります。また、島は独立して動くため、島をまたいだ状態共有にはひと工夫が要ります。なお client:* はブラウザで動かす島、Astro 5以降の Server Islands(server:defer)はサーバーで生成して差し込む島で、役割が異なります。詳しくは アイランドアーキテクチャ(Astro Islands)とは? で整理しています。