React 20:AIサーバーコンポーネントの時代
React 20がストリーミングAIレスポンスをコンポーネントライフサイクルに直接統合する方法。
React 20はもはや単なるUIライブラリではありません。フルスタックAIフレームワークです。 新しい<AIStream />とuseAgentフックで、生成UIの構築はデータフェッチと同じくらい簡単です。
React 20の主要機能
1. AIサーバーコンポーネント(AISC)
React Server Components(RSC)がサーバーでDBクエリを実行できるようにしたように、AISCはサーバーでLLM推論を実行し、結果を直接クライアントにストリーミングできます。
// WeatherAgent.server.js
import { OpenAI } from 'ai-sdk';
export async function WeatherSummary({ location }) {
const stream = await OpenAI.chat.completions.create({
model: 'gpt-5-turbo',
messages: [{ role: 'user', content: `Weather in ${location}?` }],
stream: true,
});
return <AIStream source={stream} />; // チャンクバッファリングを自動処理
}
2. 生成UI(GenUI)
これがゲームチェンジャー。LLMはテキストだけでなく、Reactコンポーネントを返します。 Vercel AI SDKはReactエコシステムのコア部分に成熟しました。UIコンポーネントを返す「ツール」を定義できます。
例:
ユーザーの質問:「AAPLの株価を見せて」
LLMの応答:showStockChart(AAPL)関数を呼び出し -> クライアントでHighchartsコンポーネントをレンダリング。
3. useAgentフック
会話状態(ローディング、エラー、ストリーミング、履歴)の管理は以前は大変でした。
const { input, handleSubmit, messages, status } = useAgent({
api: '/api/chat',
initialPrompts: ['Help me debug code'],
});
移行ガイド:React 19から20へ
- Strict Mode: 設定されている場合、「AI安全性」チェックを強制(LLMレスポンスからの生HTMLをサニタイズなしでレンダリングすることを防止)。
- コンパイラ: Reactコンパイラ(Million.jsロジックのほとんどがマージ済み)がデフォルトでオン。
useMemoやuseCallbackは不要に。
パフォーマンスへの影響
重い「プロンプト構築」と「コンテキスト取得」(RAG)ロジックをサーバーコンポーネントに移動することで、クライアントバンドルサイズを小さく保てます。クライアントは生成されたインタラクティブUIチャンクのみを受信。
2026年「Vibe Coding」スタック
- フレームワーク: Next.js 16 または Remix 4(両方ともReact 20を完全サポート)
- スタイリング: Tailwind v5(ゼロランタイムCSS-in-JS)
- AI: Vercel AI SDK + LangChain.js
- データベース: PGlite(WASMのPostgres)でローカルファーストAIアプリ
React 20はReactの地位を固めました。単なるビューレイヤーではなく、AIウェブのオーケストレーションレイヤーとして。