web-dev-qa-db-ja.com

履歴のプッシュと置換のトレードオフは何ですか?

History パッケージを使用して、無効なURLをreactコンポーネントの404ページにリダイレクトします。

私が使う .replace の代わりに .Push私がアクセスした無効なURLをブラウザに記録させたくないからです。

ここでポイントを逃しましたか?そして、私の目的のためにどちらを選択するかの間にはトレードオフがありますか?

誰かが私に説明できますか?前もって感謝します ;)

29
Kris MP

あなたは正しい考えを持っていると思います。

私は個人的に.replace無効なURLからリダイレクトする場合(または関連性がない場合、つまり、ログに記録されたユーザーが「/ login」のURLにアクセスしたときに「プロフィール」ページにリダイレクトされるため)、ブラウザーの「戻る」ボタンを使用すると、エンドユーザーに対して適切に機能します。

14
vgrafe

router.replaceはrouter.Pushのように機能します。唯一の違いは、名前が示すように、新しい履歴エントリをプッシュせずにナビゲートすることです。現在のエントリを置き換えます。

6
krankuba