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ロジックのほとんどがマージ済み)がデフォルトでオン。useMemouseCallbackは不要に。

パフォーマンスへの影響

重い「プロンプト構築」と「コンテキスト取得」(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ウェブのオーケストレーションレイヤーとして。