2025年のための必須Reactライブラリ
(robinwieruch.de)- Reactは長年使われてきたことで、巨大なライブラリエコシステムが形成されている
- 他の言語やフレームワークから来た開発者は、Reactアプリケーションの構築に必要なライブラリ選びに苦労することがある
- Reactの中核は、コンポーネントベースのUIを構築するための機能中心のライブラリ
- 関数コンポーネントとReact Hooksを活用して、ローカル状態管理、副作用の処理、パフォーマンス最適化が可能
- 最終的にコンポーネントとフックはいずれも、関数を活用してUIを構成する方式として動作する
- 2025年に向けた大規模アプリケーション開発に必要な必須Reactライブラリを紹介する
Reactプロジェクトを始める
- Vite : Reactプロジェクトをセットアップする最も人気の高いツール。高速なビルド速度と手軽なTypeScriptサポートを提供
- Next.js :
- Reactベースのメタフレームワークで、サーバーサイドレンダリング(SSR)と静的サイト生成(SSG)をサポート
- ファイルベースルーティング、APIルート、React Server Components(RSC)など多様な機能を提供
- TanStack Start (Beta) : Reactベースの新しいフレームワークで、React Server Componentsのサポートを予定。Next.jsの代替として開発中
- React Router : Reactのクライアントサイドルーティングを代表するライブラリ。現在はRemixの影響を受けて変化している
- Astro : フレームワーク非依存の静的サイト生成ツール。Reactと併用でき、不要なJavaScriptを最小限にしてパフォーマンスを最適化できる
- Nitro , Redwood , Waku
- React向けの新しいフレームワークおよびツール群
- WakuはZustandの開発者が作った、React Server Componentsをサポートするライブラリ
- おすすめ:
- クライアントサイドレンダリング(CSR): Vite
- サーバーサイドレンダリング(SSR): Next.js
- 静的サイト生成(SSG): Astro
Reactパッケージマネージャー
- npm : Node.js標準のパッケージマネージャーで、最も広く使われている
- Yarn : より優れた依存関係管理と速度向上を提供
- pnpm : 高性能だが、比較的普及度は低い
- Turborepo : Monorepo管理ツールで、複数のReactプロジェクトを効果的に管理できる
- おすすめ:
- 一般的なパッケージ管理: npm
- パフォーマンス最適化が必要な場合: pnpm
- モノレポが必要な場合: Turborepo
React状態管理
- useState, useReducer : React標準の組み込みフックで、コンポーネント内の状態を管理
- useContext : グローバル状態管理のためのReact標準組み込みフック
- Zustand : シンプルなAPIでグローバル状態を管理できるライブラリ。Reduxより使いやすく、近年多くの開発者に好まれている
- Redux : 長年使われてきた状態管理ライブラリ。近年はRedux Toolkitが標準として定着している
- XState, Zag : ステートマシンベースの状態管理ライブラリ
- Mobx , Jotai , Nano Stores : ZustandやReduxの代替として使える状態管理ライブラリ
- おすすめ:
- ローカル状態: useState / useReducer
- 小規模なグローバル状態: useContext
- 大規模なグローバル状態: Zustand
Reactデータフェッチ
- TanStack Query : RESTおよびGraphQL APIリクエスト向けのデータフェッチライブラリ。キャッシュ、同期、オプティミスティックアップデートなどの機能を提供
- Apollo Client : GraphQL APIに最適化されたデータ管理ライブラリ
- urql : 軽量なGraphQLクライアント
- Relay : Facebookが開発した高性能GraphQLクライアント
- RTK Query : Redux環境でデータフェッチを簡単に行えるよう支援するツール
- tRPC : TypeScriptベースでバックエンドとフロントエンド間の型安全なAPI通信を提供。TanStack Queryと併用可能
- おすすめ:
- サーバーサイドデータフェッチ: React Server Components / Functions(対応するメタフレームワークを使用する場合)
- クライアントサイドデータフェッチ: TanStack Query(REST、GraphQL)
- GraphQL専用: Apollo Client
- 型安全なAPI通信: tRPC
Reactルーティング
- React Router : クライアントサイドルーティングで最も広く使われているライブラリ
- TanStack Router (Beta) : TypeScriptサポートに優れた新しいルーティングライブラリ
- おすすめ:
- サーバーサイドルーティング: Next.js
- クライアントサイドルーティング: React Router(最も広く使われている)、TanStack Router(最新トレンド)
ReactのCSSスタイリング
- Tailwind CSS
- Utility-First CSS方式で、あらかじめ定義されたクラスを活用して素早くスタイリング可能
- デザインシステムの一貫性を保ちやすい一方で、クラス命名が複雑になることがある
- CSS Modules
- コンポーネントごとにスタイルをモジュール化し、グローバルスタイルの衝突を防げる
- CSS-in-CSSアプローチの中で最も広く使われている
- styled-components
- JavaScriptコード内でCSSを定義するCSS-in-JS方式
- パフォーマンスやサーバーサイド環境での問題から、近年は人気が下がる傾向にある
- Emotion : styled-componentsに似たCSS-in-JSライブラリで、パフォーマンス最適化やユーティリティクラスの活用が可能
- clsx : 条件付き
className設定を簡単にするユーティリティライブラリ - StyleX : Facebookが開発した新しいCSS-in-JSソリューション。最適化されたコンパイル方式でユーティリティファーストのスタイリングを提供
- その他のCSSライブラリ : PandaCSS , linaria , vanilla-extract , nanocss , UnoCSS , Styled JSX
- おすすめ:
- 最も人気のある方式: Tailwind CSS
- スタイルのモジュール化が必要な場合: CSS Modules
- 最新のCSS-in-JSソリューション: StyleX
React UIライブラリ
- Material UI (MUI) : フリーランスのプロジェクトで今なお多く使われているUIライブラリ。GoogleのMaterial Designシステムがベース
- Mantine UI : 2022年に最も人気があったUIライブラリ。多彩な機能とカスタムスタイルに対応
- Chakra UI : 2021年に最も人気があったUIライブラリ。アクセシビリティとスタイリングのしやすさに優れる
- Hero UI : 以前のNext UIから名称変更されたUIライブラリ
- Park UI : Ark UIベースのUIライブラリ
- PrimeReact : さまざまなプリビルト(Prebuilt)UIコンポーネントを提供
- ヘッドレスUIライブラリ
- shadcn/ui (2023-2024年に最も人気)
- Radix (shadcn/uiのベース)
- React Aria
- Ark UI (Chakra UIの開発チームが開発)
- Ariakit
- Daisy UI
- Headless UI
- Tailwind UI (有料)
- 使用頻度が減ったUIライブラリ
- おすすめ:
- スタイル込みのUIライブラリ: MUI, Mantine, Chakra UI
- スタイルなしのヘッドレスUIライブラリ: shadcn/ui, Radix
Reactアニメーションライブラリ
- Motion : 最もおすすめのアニメーションライブラリ(旧Framer Motion)
- react-spring : 物理ベースのアニメーションを実装可能
Reactのチャートとデータ可視化
- D3.js : 低レベルのチャートライブラリで強力だが、学習曲線は急
- Recharts : 使いやすいチャートライブラリ。基本的なカスタマイズが可能
- visx : D3に近い方式で動作するが、Reactフレンドリー
- その他のチャートライブラリ : Victory , nivo , react-chartjs
- おすすめ:
- 手軽なチャート: Recharts
- D3スタイルのカスタマイズ: visx
Reactフォームライブラリ
- React Hook Form : 最も広く使われているReactフォームライブラリ。
zodと併用することで強力なフォームバリデーションが可能 - Conform : フルスタックアプリケーションとの統合がしやすい新興フォームライブラリ
- Formik , React Final Form : 伝統的なReactフォームライブラリで、現在も一部のプロジェクトで使われている
- おすすめ:
- フォームライブラリを選ぶなら React Hook Form + zod を使用
Reactのコードスタイルとフォーマット
- ESLint : コードスタイル維持のためのリンター。人気のあるスタイルガイドを適用できる
- Prettier : 一貫したコードフォーマットを提供するツール。ESLintと併用可能
- Biome : Rustベースの高速なオールインワンリンター兼コードフォーマッタ(旧Rome)。ESLintやPrettierの代替として注目されている
- おすすめ:
- ESLint + Prettier の組み合わせを使用
- 新しい代替として Biome を検討
React認証
- Lucia : OAuthおよび暗号化機能をサポートする認証ソリューション
- Better Auth : 最新の認証サービスの1つ
- Auth.js : Next.jsやさまざまなフレームワークで簡単に使える認証ライブラリ
- 有料認証サービス : Clerk , Kinde
- Firebase/Supabaseベースの認証 : Supabase Auth
- その他の認証サービス : AuthKit , Auth0 , AWS Cognito
- おすすめ:
- 手軽な認証: Auth.js, Supabase Auth
- OAuthとセキュリティ機能を強化: Lucia, Better Auth
Reactバックエンド
- Next.js : サーバーサイドレンダリング(SSR)とAPIルートを提供
- Astro : 静的Webサイトの生成に適したフレームワーク
- tRPC : 型安全なAPI通信のためのソリューション
- Hono : 超軽量サーバーフレームワークで、Reactと併用可能
- 伝統的なNode.jsバックエンドフレームワーク
- その他のバックエンドフレームワーク
- おすすめ:
- フルスタックReact開発: Next.js, tRPC
- 伝統的なバックエンドが必要な場合: Express, Fastify
ReactデータベースおよびORM
- Prisma : 最も人気のあるTypeScriptベースのORM
- Drizzle ORM : Prismaの代替として注目されているORM
- その他のORMおよびクエリビルダー : Kysely , database-js : PlanetScale専用
- サーバーレスデータベース
- PlanetScale (有料)
- Neon PostgreSQLサーバーレス
- Xata
- Turso
- Firebase/Supabaseベースのデータベース
- Supabase PostgreSQLベース、セルフホスティング可能
- Firebase Firestore
- おすすめ:
- ORMが必要な場合: Prisma, Drizzle ORM
- サーバーレスデータベース: PlanetScale, Neon
Reactホスティング
- 自己管理型サーバー : Digital Ocean , Hetzner
- フルマネージドホスティング :
- その他のホスティングプラットフォーム
- Render , Fly.io , Railway
- CloudFlare , AWS , Azure , Google Cloud
- おすすめ:
- Next.jsプロジェクト: Vercel
- 自前でサーバー管理が必要な場合: Digital Ocean, Hetzner
Reactテストライブラリ
- Vitest : Jestより高速で、最新のReactプロジェクトに最適化されたテストフレームワーク。テスト実行、アサーション、モック機能を提供
- Jest : 古いプロジェクトでも広く使われているテストフレームワーク
- React Testing Library (RTL)
- Reactコンポーネントテストの代表的なライブラリ
- HTML要素のレンダリングやイベントシミュレーション機能を提供
- Playwright
- 最もおすすめのE2E(End-to-End)テストツール
- さまざまなブラウザやデバイス環境で自動テストが可能
- Cypress : フロントエンド向けE2Eテストツールで、Playwrightと競合している
- おすすめ:
- ユニット/統合テスト: Vitest + React Testing Library
- E2Eテスト: Playwright (または Cypress)
- スナップショットテストの選択肢: Vitest
Reactとイミュータブルデータ構造
- Immer :
- イミュータブルデータ構造を簡単に扱えるようにするライブラリ
- 複雑な状態変更ロジックを簡潔に実装可能
React多言語(i18n)対応
- FormatJS : 日付、数値、通貨などのフォーマットを含む強力なi18nライブラリ
- react-i18next : Reactで最も広く使われている多言語対応ライブラリ
- Lingui : 最小限の設定で強力な多言語対応を提供
- next-intl : Next.jsプロジェクト向けの多言語ライブラリ
- おすすめ:
- 最も一般的な選択肢: react-i18next
- Next.jsベースのプロジェクト: next-intl
Reactリッチテキストエディタ
- TipTap : 拡張性に優れた最新のリッチテキストエディタ
- Plate : Slate.jsベースの強力なエディタソリューション
- Lexical : Facebookが開発した軽量リッチテキストエディタ
- Slate : カスタマイズ可能なリッチテキストエディタフレームワーク
- おすすめ:
- 柔軟な拡張性が必要な場合: TipTap
- 軽量かつ最適化されたエディタ: Lexical
React決済システム
- PayPal : 最も広く使われている決済システムの1つ
- Stripe : 開発者フレンドリーな決済APIを提供
- その他の決済ソリューション
- Braintree (PayPal傘下)
- Lemon Squeezy (Stripeベース)
- おすすめ:
- 手軽な決済ソリューション: Stripe
- PayPal対応が必要な場合: PayPal または Braintree
Reactでの時間・日付処理
- date-fns : 軽量でありながら多様な日付・時刻関数を提供
- Day.js : Moment.jsの軽量な代替で、APIも似ている
- おすすめ:
- 最も軽量なライブラリ: Day.js
- 機能が豊富なライブラリ: date-fns
Reactデスクトップアプリケーション
- Electron :
- クロスプラットフォームのデスクトップアプリケーション開発フレームワーク
- Web技術(HTML、CSS、JS)で Windows、macOS、Linux アプリケーションを作成可能
- Tauri
- Electronより軽量な代替で、Rustベースのバックエンドを使用
- セキュリティと性能が重要なプロジェクトに適している
- おすすめ:
- Web技術をそのまま活用: Electron
- 軽量 & セキュリティ優先: Tauri
Reactファイルアップロード
- react-dropzone : ファイルアップロードのためのReactフックベースのライブラリ。ドラッグ&ドロップ機能をサポート
Reactメールレンダリング
- react-email (おすすめ): Reactコンポーネントを活用したレスポンシブHTMLメールを作成可能
- mjml : HTMLメールを簡単に生成するためのマークアップ言語
- Mailing : 開発者が簡単にメールを作成・管理できるよう支援
- jsx-email : JSX構文を活用したメールテンプレートの作成が可能
- メールサービスプロバイダー:
- おすすめ:
- Reactスタイルでメールを作成: react-email
- メールサービスが必要な場合: SendGrid、Mailgun
Reactドラッグ&ドロップ
- @hello-pangea/dnd :
react-beautiful-dndの後継プロジェクトで、簡単な使い方を提供 - dnd kit : 高い柔軟性とカスタマイズ性があるが、学習コストがある
- おすすめ:
- 簡単なドラッグ&ドロップ: @hello-pangea/dnd
- カスタマイズが必要な場合: dnd kit
Reactモバイル開発
- React Native : Reactベースのクロスプラットフォームモバイルアプリケーション開発フレームワーク
- Expo : React Native開発をさらに簡単にするツールチェーン
- Tamagui : Webとモバイルで同じUIコンポーネントを使えるよう支援
- おすすめ:
- モバイル開発: React Native + Expo
- WebとモバイルUIの統合: Tamagui
React VR/AR開発
- react-three-fiber : Three.jsベースの3Dレンダリングライブラリ。VR対応事例あり
- react-360 (アーカイブ済み): Facebookが開発したVR/ARフレームワーク(現在はメンテナンス停止)
- aframe-react (すでにメンテナンス終了): A-FrameをReactで使えるようにするライブラリ
- おすすめ:
- 最新のReact 3D/VRライブラリ: react-three-fiber
Reactデザインプロトタイピング
- Figma : UI/UXデザインとプロトタイピングのための最も人気のあるツール
- Excalidraw : 手描き風のワイヤーフレームやダイアグラムを作成可能
- tldraw : Excalidrawに似たスケッチツール
- おすすめ:
- UI/UXデザイン: Figma
- シンプルなワイヤーフレーム: Excalidraw
Reactコンポーネントのドキュメント化
- Storybook : UIコンポーネントの開発とドキュメント化のための代表的なツール
- Docusaurus : 技術ドキュメント向けの静的サイトジェネレーター
- Styleguidist : Reactコンポーネント中心のスタイルガイド文書化ツール
- React Cosmos : UIコンポーネントを独立して開発・テストできる環境を提供
- おすすめ:
- コンポーネントのドキュメント化: Storybook
- 技術ドキュメントの作成: Docusaurus
6件のコメント
ssgoi.dev: Reactページ遷移ライブラリ
これも追加していただけるとありがたいです(笑)..
expoはRNのフレームワークと見なすべきではないかと思います。
Googleトレンドで検索すると、reduxは90%でzustandは10%にも満たないと認識していますが、zustandが上にあるんですね(笑)
レガシーの力ですね。
ちなみに jQuery の市場シェアは 90% です...
React技術スタック 2025 もあわせて参考にしてください
2022年時点でReactでアプリ開発する際のおすすめライブラリ
毎年更新しているようですが、3年ぶりですね。比較して見るとよいです。