目的:画面を作り、公開する

ブラウザ向けの画面を作る

「操作できる Web 画面を作りたい」

この目的で選ぶときに見る軸

  1. レンダリング方式
  2. 学習コスト
  3. エコシステム

下の表の「主要制約」は各ツールで最も先に当たる制約。軸ごとの値はツール詳細の制約表で確認する。

この目的に使える手段(5件)

ブラウザ向けの画面を作る を持つツールの比較
ツール分類種別学習料金成熟主要制約検証
Astro
既定でJavaScriptを出さない静的サイト生成器。必要な部分だけ島として動かす
画面・フロントエンドフレームワーク無料安定島(Island)の間の状態共有:部分ハイドレーションされた島の間では React Context 等のコンテキストラッパーが使えない。共有には Nano Stores(1 KB 未満、依存なし)のような外部ストアが推奨される
React
コンポーネントと状態でUIを組む、ブラウザ画面向けのJavaScriptライブラリ
画面・フロントエンドフレームワーク無料安定フック呼び出しの制約(Rules of Hooks):フックは関数コンポーネントかカスタムフックの最上位でのみ呼べる。条件分岐・ループ・早期 return の後・イベントハンドラ・try/catch・useMemo や useEffect に渡す関数の中・クラスコンポーネントでは呼べない
SvelteKit
Svelteでルーティング・サーバー処理・静的出力までを完結させるフレームワーク
画面・フロントエンドフレームワーク無料安定デプロイ先ごとのアダプタ選定:ビルド出力をデプロイ環境向けに変換する「アダプタ」の指定がsvelte.config.jsで必須。公式にNode・Cloudflare・Netlify・Vercel・静的サイト(adapter-static)向けがある
TypeScript
JavaScriptに静的型を足した言語。Node.jsでブラウザとサーバーを同じ言語で書く
言語・実行環境言語無料安定型の実行時消失:型注釈は JavaScript の一部ではなく、コンパイル時に完全に削除される。型が実行時の動作を変えることはない
Next.js
Reactにルーティング・サーバー描画・APIを足した、Web アプリのフレームワーク
画面・フロントエンドフレームワーク無料安定静的エクスポートで使えない機能:output を export にすると Cookie、Rewrites・Redirects・Headers、Proxy、ISR、既定ローダーの画像最適化、Draft Mode、Server Actions、Intercepting Routes、generateStaticParams のない動的ルートが使えない。Route Handler は GET のみ、force-static の明示が必要