【React.js/Next.js】React Router v7 データモード 完全入門

React.js / Next.js

React Router って、どんな機能があるのかな?

今回は、React.js のアプリにルーティング機能を追加するためのライブラリ React Router について解説します。
URLと画面をどのように結びつけるのか、その基本的な仕組みから、v7 で主流となっているデータモード の実践的な使い方まで、コード例を交えながらわかりやすく紹介します。

React.js の環境構築がまだの場合は、下記より環境構築を行なってください。

React Router とは?

React Router とは、React.js アプリに URLと画面を結びつけるルーティング機能を追加するライブラリ です。
v7 では単なるルーティングにとどまらず、データ取得やフォーム処理 も統合した アプリケーションの基盤 として進化しました。

特に推奨されている データモード では、画面表示前にデータを取得 したり、ローディング状態を自動管理 することができます。
また、SSR(サーバーサイドレンダリング:サーバー側でページを作って表示を高速化する仕組み)にも対応しており、TypeScript と組み合わせることで 型安全性も高く なっています。

React Router のインストールと基本的な使い方

それでは、ここから実際に React Router を インストール したり、コンポーネントで利用する 基本的な流れを見ていきましょう。

React Router のインストール

React Router を インストール します
※ v7では基本的に react-router-dom は不要です。

React Router の基本的な使い方

  1. createBrowserRouterルーターの設定
  2. RouterProvider設定したルーターをReactで有効化

処理内容

  1. ホーム画面の表示とURLの確認
  2. 子コンポーネントの画面表示とURLの確認
  3. 孫コンポーネントの画面表示とURLの確認

React Router の loader(画面表示前にデータ取得)と action(フォーム送信処理)の使い方

React Router の loader と action とは?

React Routerloader とは、ページを表示する前に必要なデータを取得する仕組みのことで、ユーザー一覧を画面に表示するためにサーバーからデータを取得する GETのような役割 を果たします。
一方、React Routeraction とは、フォームやボタンなどでデータを送信したあとに実行される処理のことで、新しいユーザーを追加するボタンを押したときにサーバーに送る POSTのような役割 を果たします。

React Router の loader(画面表示前にデータ取得)と action(フォーム送信処理)の使い方

  1. createBrowserRouterルーターの設定
  2. RouterProvider設定したルーターをReactで有効化
  3. useLoaderData画面表示前にデータを取得 ※ 追加
  4. useActionDataフォーム送信後に結果の取得 ※ 追加

コードが長くなるため、React Router の基本的な使い方のコード にコードを追加してあります。
ユーザーデータ取得(GET)ユーザー追加(POST) の処理に json-server を使用しております。
json-server をインストールしていない場合は、下記よりインストールを行なってください。

【Tool】json-server のインストールと使い方
今回は、JSON ファイルを簡単に REST API に変換してくれる Node.js ライブラリ json-server について、インストール方法や使い方 をご紹介します。json-server とは?json-server とは、JS...

処理内容

  • /users 画面のユーザー表示とURLの確認
  • /users/add にて名前と年齢を入力し保存
  • /users 画面のユーザー一覧に追加したユーザーの表示の確認
  • /users/add にて再度、名前と年齢を入力し保存
  • /users 画面のユーザー一覧に後から追加したユーザーの表示の確認

React Router のネスト構造の使い方

React Router のネスト構造とは?

React Routerネスト構造 とは、URLの構造と画面の構造を一致させる ことで、親ページの中に子ページや孫ページを表示できる仕組み です。
これにより、レイアウトを共有したりタブのように画面の一部だけを切り替えたり親の状態を保持したまま自然な画面遷移を実現できます

React Router のネスト構造の使い方

  1. createBrowserRouterルーターの設定時に、childrenに子のコンポーネントやさらに孫コンポーネントを設定する
  2. RouterProvider設定したルーターをReactで有効化
  3. children に設定した 子のコンポーネント孫コンポーネントOutlet を設定する

コードが長くなるため、React Router の基本的な使い方のコード にコードを追加してあります。

処理内容

  • /dashboard 画面の「Dashboard」表示と「Settingsへ」のリンク表示URL の確認し、「Settingsへ」をクリック
  • /dashboard/settings 画面の「Dashboard」・「Settings」の表示とUser Profileへ」と「dashboardに戻る」のリンク表示 URL の確認し、User Profileへ」をクリック
  • /dashboard/settings/user-profile 画面の「Dashboard」・「Settings」・「User Profile」の表示とSettingsに戻る」のリンク表示 URL の確認、Settingsに戻るをクリック
  • /dashboard/settings 画面の「Dashboard」・「Settings」の表示とUser Profileへ」と「dashboardに戻る」のリンク表示 URL の確認し、dashboardに戻るをクリック
  • /dashboard 画面の「Dashboard」表示と「Settingsへ」のリンク表示URL の確認

まとめ

React Router について、loaderactionネスト構造 もあわせて解説してきましたが、いかがでしたでしょうか?

React Router は、React.js アプリに URLと画面を結びつけるルーティング機能を追加するライブラリ のことで、データモード では データ取得やフォーム処理ローディング状態の自動管理 も行うことができます。

まずは React Router の基本的な使い方をしっかり押さえ、小さな コンポーネント で試しながら、少しずつ loaderactionネスト構造 などを使えるようになっていきましょう。

公式サイト

React Router v7 ドキュメント 日本語版

React Router v7 ドキュメント 日本語版
tachu × tachu

Laravel / React フルスタックエンジニア

Webエンジニア歴15年、フリーランス歴8年で、PHP / Laravel を中心に、
React.js / Vue.js を用いたフルスタックでのWeb開発をしています。

技術記事は Laravel / React / Web開発 を中心に書いています。

Webサービスの開発、既存システム改善、機能追加、技術相談、小規模な開発など、お気軽にご相談ください。

React.js / Next.js
シェアする

コメント

タイトルとURLをコピーしました