ご挨拶
初めまして!株式会社Good Lab 開発部で働いているクロちゃんです。
今は企画・設計〜保守まで様々な領域の案件で活躍させてもらっております。
初投稿のため、気合い入れていますが今後も継続して続けていこうと思います。
はじめに
Reactは2013年のリリース以来、フロントエンド開発の中心的な存在であり続けています。2024〜2026年にかけても大きな進化を遂げており、「ただコンポーネントを書く」時代から、サーバーとクライアントの境界を意識した設計が求められる時代になりました。
この記事では、2026年現在のReactエコシステムにおけるトレンドを整理し、実務でどう活かすべきかを語っています。
1. React 19 — 待望のメジャーアップデート
React 19がリリースされ、多くの新機能が安定版として使えるようになりました。
use フック
Promise や Context を直接読み取れる新しいフックです。従来の useEffect + useState パターンが大幅にシンプルになります。
import { use } from 'react';
function UserProfile({ userPromise }) {
const user = use(userPromise);
return <h1>{user.name}</h1>;
}
Actions(Server Actions / Form Actions)
フォーム処理が劇的にシンプルになりました。useActionState や useFormStatus と組み合わせることで、サーバーへのデータ送信・バリデーション・楽観的更新を宣言的に書けます。
import { useActionState } from 'react';
function AddTodo() {
const [state, formAction, isPending] = useActionState(addTodoAction, null);
return (
<form action={formAction}>
<input name="title" />
<button disabled={isPending}>
{isPending ? '送信中...' : '追加'}
</button>
{state?.error && <p>{state.error}</p>}
</form>
);
}
useOptimistic — 楽観的UI更新
ネットワークリクエストの完了を待たずにUIを更新し、ユーザー体験を向上させるためのフックです。
import { useOptimistic } from 'react';
function TodoList({ todos, addTodoAction }) {
const [optimisticTodos, addOptimisticTodo] = useOptimistic(
todos,
(state, newTodo) => [...state, { ...newTodo, sending: true }]
);
// ...
}
ドキュメントメタデータのネイティブサポート
<title> や <meta> をコンポーネント内に直接記述できるようになり、react-helmet などのライブラリが不要になるケースが増えました。
function BlogPost({ post }) {
return (
<>
<title>{post.title}</title>
<meta name="description" content={post.summary} />
<article>{post.content}</article>
</>
);
}
2. React Server Components(RSC)— パラダイムシフト
React Server Components は、2025年のReact開発における最大のパラダイムシフトです。
コア思想: コンポーネントをサーバーで実行し、シリアライズされた結果のみをクライアントに送る。これにより、バンドルサイズの削減・初回表示の高速化・データ取得のシンプル化が実現します。
// これはサーバーコンポーネント(デフォルト)
// DBに直接アクセスでき、バンドルに含まれない
async function ArticleList() {
const articles = await db.article.findMany();
return (
<ul>
{articles.map(a => (
<li key={a.id}>
<a href={`/articles/${a.id}`}>{a.title}</a>
</li>
))}
</ul>
);
}
'use client'; // クライアントコンポーネントは明示的に宣言
import { useState } from 'react';
function LikeButton({ articleId }) {
const [liked, setLiked] = useState(false);
return <button onClick={() => setLiked(!liked)}>♥</button>;
}
実務での注意点
| 観点 | Server Component | Client Component |
|---|---|---|
| データ取得 |
async/await で直接 |
useEffect / TanStack Query 等 |
| 状態管理 | 不可(stateless) |
useState / useReducer
|
| イベント | 不可 |
onClick 等すべて利用可 |
| バンドル | 含まれない | 含まれる |
設計のコツ: 「できるだけサーバー、必要なところだけクライアント」が基本方針です。インタラクティブな部分だけを 'use client' で切り出し、データ取得や表示ロジックはサーバーに寄せましょう。
3. React Compiler — 手動メモ化の終焉
React Compiler(旧 React Forget)が実用段階に入りました。
これまで useMemo、useCallback、React.memo を手動で書いていたパフォーマンス最適化を、コンパイラが自動で行うようになります。
// Before: 手動メモ化が必要だった
const MemoizedList = React.memo(function List({ items }) {
const sorted = useMemo(() => items.sort(compareFn), [items]);
const handleClick = useCallback((id) => { /* ... */ }, []);
return sorted.map(item => <Item key={item.id} onClick={handleClick} />);
});
// After: そのまま書けばコンパイラが最適化
function List({ items }) {
const sorted = items.sort(compareFn);
const handleClick = (id) => { /* ... */ };
return sorted.map(item => <Item key={item.id} onClick={handleClick} />);
}
インパクト: コードがシンプルになるだけでなく、メモ化の「やり忘れ」による不要な再レンダリングも減り、開発者体験とパフォーマンスの両方が向上します。
4. メタフレームワークの動向
Next.js — App Router が主流に
App Router + RSC が安定し、Pages Router からの移行が進んでいます。Server Actions、Partial Prerendering(PPR)など、Reactの最新機能をいち早く取り入れたフルスタック体験が魅力です。
Remix → React Router v7
RemixはReact Router v7に統合されました。Viteベースのビルド、ローダー/アクションパターンを維持しつつ、よりシンプルなAPIを提供しています。既存のReact Routerユーザーにとって自然なアップグレードパスとなっています。
TanStack Start
TanStack(旧React Query)チームによるフルスタックフレームワークです。Type-safeなルーティング、サーバー関数、RSCサポートを備え、新たな選択肢として注目されています。
5. 状態管理のトレンド
状態管理ライブラリの勢力図にも変化が見られます。
Zustand がReduxに代わる軽量な選択肢として広く普及しました。ボイラープレートの少なさとシンプルなAPIが支持されています。
Jotai はアトムベースの状態管理で、React Server Componentsとの相性の良さから注目度が上がっています。
TanStack Query はサーバー状態(非同期データ)の管理ではデファクトスタンダードの地位を確立しています。
一方で、RSCの普及により「そもそもクライアントで持つ状態が減る」という流れも強まっており、状態管理ライブラリを使わない設計も選択肢に入るようになってきました。
6. スタイリングの現在地
Tailwind CSS はReactエコシステムにおいて圧倒的なシェアを持つスタイリング手法となっています。v4ではパフォーマンスの大幅な改善とCSS-firstの設定体系が導入されました。
CSS Modules はサーバーコンポーネントとの相性が良く、RSC環境での安定した選択肢です。
CSS-in-JS については、Emotionやstyled-componentsなどランタイム系のライブラリは、RSC非対応やパフォーマンスの観点から採用が減少傾向にあります。代わりに Panda CSS や Vanilla Extract などのゼロランタイム系に移行する動きが見られます。
7. 注目すべき周辺ツール
| ツール | 概要 |
|---|---|
| Biome | ESLint + Prettier を置き換える高速なリンター/フォーマッター(Rust製) |
| Vite 6 | 開発サーバーの高速化がさらに進み、Reactプロジェクトの標準ビルドツールに |
| Vitest | Viteネイティブなテストフレームワーク。Jestからの移行が加速 |
| Storybook 8 | RSC対応が進み、サーバーコンポーネントのプレビューが可能に |
まとめ:2025年のReact開発で意識すべきこと
2025年のReact開発を一言でまとめると、「サーバーファーストへの回帰」 です。
RSCとServer Actionsによってサーバーとクライアントの境界が曖昧になり、フロントエンドエンジニアにもサーバーサイドの知識が求められるようになっています。一方で、React CompilerやActions APIにより、開発者が書くコード自体はシンプルになっていく方向です。
キャッチアップすべき優先度としては以下の順をおすすめします。
- React 19の新API(use, Actions, useOptimistic)
- React Server Components の設計パターン
- React Compiler の仕組みと導入方法
- メタフレームワーク(Next.js App Router or 代替)の選定
変化は大きいですが、Reactの「UIをコンポーネントで宣言的に記述する」という根本思想は変わっていません。新しいプリミティブを一つずつ理解していけば、自然と追いつけるはずです。
最後まで読んでいただきありがとうございます。