Skip to content

Astro とは

Astro は、コンテンツ駆動型のウェブサイトを構築するためのモダンなウェブフレームワークです。静的サイト生成(SSG)を主な得意分野とし、ブログ、マーケティングサイト、ドキュメントサイトなどに最適です。特に、JavaScriptを最小限に抑えることで、非常に高速なウェブサイトを生成できるのが最大の特徴です。

  1. コンテンツファースト ✍️ Astro はコンテンツを最優先に設計されています。Markdown、MDX、そしてAstroコンポーネントを使って、直感的にコンテンツを作成できます。

  2. JavaScript ゼロの理念 🚀 デフォルトでは、Astro はクライアントサイドに JavaScript を送りません。これにより、ウェブサイトの読み込み速度が大幅に向上し、パフォーマンスとSEOに大きなメリットをもたらします。

  3. アイランドアーキテクチャ 🏝️ インタラクティブなコンポーネントが必要な場合、Astro はその部分だけを個別の「アイランド」として分離し、JavaScriptを最小限にロードします。これにより、ページ全体がJavaScriptに依存するのを防ぎます。

  4. UIフレームワークのサポート 🧩 React, Vue, Svelte, SolidJS など、お好みの UI フレームワークのコンポーネントを Astro プロジェクト内でシームレスに利用できます。

  5. サーバーサイドレンダリング (SSR) 🖥️ 静的サイト生成だけでなく、SSRにも対応しています。これにより、ユーザーごとにパーソナライズされたコンテンツや、リアルタイムなデータを含むページを生成できます。

Astro のUIは、.astro拡張子のコンポーネントを使って構築されます。

  • コンポーネントスクリプト: --- で囲まれた部分に JavaScript/TypeScript を記述します。データの受け渡しや外部APIからのデータ取得など、ページのロジックを担当します。

  • コンポーネントテンプレート: スクリプト部分の下に、HTMLやJSXライクな構文でUIを記述します。

  • コンポーネントスタイル: <style> タグで CSS を記述します。デフォルトでスコープ化されるため、他のコンポーネントに影響を与えません。

---
// Propsとしてタイトルを受け取ります
const { title } = Astro.props;
---
<h1>{title}</h1>
<style>
h1 {
color: #333;
}
</style>
  • ブログ・ポートフォリオサイト: 静的サイト生成の強みを活かし、超高速なブログやポートフォリオサイトを構築できます。

  • ドキュメントサイト: Starlight と呼ばれる公式のフレームワークを使えば、プロフェッショナルなドキュメントサイトを簡単に作成できます。

  • ECサイト・ランディングページ: JavaScriptを最小限に抑えることで、商品の表示速度を上げ、コンバージョン率を高められます。

Astro は、パフォーマンスと開発者の体験を両立させたい場合に非常に適した選択肢です。この解説で Astro の全体像を掴んでいただければ幸いです。