Astro入門:モダンな静的サイト構築
Astro Web開発 チュートリアル
Astroとは
Astro は「Content-Driven」な Web サイトを構築するためのフレームワークです。デフォルトで JavaScript をゼロにする「アイランドアーキテクチャ」が特徴です。
なぜ Astro を選んだか
- パフォーマンスが圧倒的に良い - デフォルトでゼロ JS
- 好きなUIフレームワークを使える - React, Preact, Vue, Svelte など
- Content Collections - 型安全なコンテンツ管理
- MDX サポート - マークダウンの中でコンポーネントが使える
Content Collections の設定
Astro v5 では、コンテンツコレクションの設定が src/content.config.ts に変わりました。
import { defineCollection, z } from 'astro:content';
import { glob } from 'astro/loaders';
const blog = defineCollection({
loader: glob({ pattern: '**/*.mdx', base: './src/content/blog' }),
schema: z.object({
title: z.string(),
description: z.string(),
date: z.coerce.date(),
tags: z.array(z.string()).default([]),
}),
});
export const collections = { blog };
アイランドアーキテクチャ
Astro のアイランドアーキテクチャは、ページの大部分を静的 HTML として配信し、インタラクティブな部分だけを「アイランド」として JavaScript を読み込みます。
---
// 静的な部分
import Header from '../components/Header.astro';
// インタラクティブな部分
import Counter from '../components/Counter.tsx';
---
<Header />
<Counter client:visible />
client:visible のようなディレクティブで、コンポーネントの読み込みタイミングを制御できます。
まとめ
Astro はブログやドキュメントサイトに最適なフレームワークです。Content Collections による型安全なコンテンツ管理と、アイランドアーキテクチャによる高パフォーマンスが魅力です。