React Routerで使用するNavigateコンポーネントのto
とreplace
の使い分けを初心者向けに説明します。React Routerは、SPA(シングルページアプリケーション)でルーティングを管理するためのライブラリです。
1. Navigate to
とは
Navigate
コンポーネントのto
プロパティを使うと、指定したURLに遷移します。たとえば、ログイン後にユーザーをホームページにリダイレクトしたいときなどに使います。
import { Navigate } from "react-router-dom";
function Example() {
return <Navigate to="/home" />;
}
この例では、/home
に自動的に遷移します。
使いどころ
ユーザーがある条件を満たしたとき(例えば、ログインが成功した場合)に自動的にページ遷移させる場合に使います。
2. Navgate replace
とは
replace
プロパティを使うことで、遷移先のページが履歴に残らないように設定できます。ブラウザの「戻る」ボタンを押したとき、通常は前のページに戻りますが、replace
を使うと、現在のページの履歴を上書きするため、戻るボタンで戻れなくなります。
import { Navigate } from "react-router-dom";
function Example() {
return <Navigate to="/home" replace />;
}
この例では、/home
に遷移する際に、replace
を使うため、現在のページの履歴を上書きします。
使いどころ
例えば、ログイン後のリダイレクト時などで「戻る」ボタンでログインページに戻らせたくない場合などに使います。セキュリティやユーザー体験を向上させるために、意図的に「戻る」を無効化する場合に便利です。
3. Navigate
コンポーネントの他のプロパティ
Navigate
には他にもいくつかプロパティがありますが、初心者にとって覚えておくと便利なものは以下の2つです。
state:state
プロパティを使って、遷移先のコンポーネントにデータを渡すことができます。URLのクエリパラメータとは異なり、URLに表示されません。
import { Navigate } from "react-router-dom";
function Example() {
return <Navigate to="/home" state={{ from: "login" }} />;
}
replace:上で説明した通り、履歴を上書きするために使います。戻るボタンで元のページに戻させたくない場合に便利です。
まとめ
Navigate to="/path":指定したURLに遷移します。通常のページリダイレクトに使用。
Navigate to="/path" replace:履歴を上書きし、戻るボタンで元のページに戻らせたくないときに使用。
state:遷移先にデータを渡すことができ、これはURLに表示されません。