0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

React Router初心者向け:Navigateのtoとreplaceの違いをシンプルに解説

Last updated at Posted at 2024-10-14

React Routerで使用するNavigateコンポーネントのtoreplaceの使い分けを初心者向けに説明します。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つです。

statestateプロパティを使って、遷移先のコンポーネントにデータを渡すことができます。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に表示されません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?