【ナビゲーションエーピーアイ】
Navigation API とは?
最終更新:
💡 リンクや「戻る」の遷移を、一つの入口で扱う
ブラウザのページ遷移や履歴をJavaScriptから扱うWeb API。遷移イベントをまとめて受け取り、可能な遷移を同じ文書内の画面更新に置き換えるなど、SPAのルーティングを支える。
📌 このページのポイント
- window.navigationにnavigateイベントのリスナーを登録して遷移を受け取る
- canInterceptを確認し、intercept()で対応する遷移を独自処理に置き換える
- 遷移の成功・失敗や履歴、スクロール・フォーカスの制御を扱える
- データ取得や画面描画はアプリ側で実装し、ブラウザの対応範囲も確認する
JavaScriptで画面の内容を差し替えているんだ。従来はHistory APIで履歴やURLを扱い、リンクのクリックや「戻る」への対応を組み合わせていた。Navigation APIは、こうした遷移をまとめて扱うための仕組みだよ。
どうやって遷移を受け取るの?
window.navigationに、addEventListener("navigate", ...)でリスナーを登録するよ。「navigate」という名前のイベントと、遷移を開始するnavigation.navigate()メソッドは別のものなんだ。
どんな遷移でも自由に変えられるの?
制限があるよ。event.canInterceptがtrueかを確認し、自分のアプリが扱う遷移だけevent.intercept()で置き換える。別のオリジンへの遷移などは置き換えられないので、通常のブラウザの処理に任せるんだ。
intercept()を呼ぶと、データも画面も自動で変わる?
ルーティングライブラリは、もう不要なの?
📖 おまけ:英語の意味
「Navigation API」 = ナビゲーションAPI
💬 navigate(ナビゲートする・移動する)からきていて、ブラウザの「どこへ移動するか」をプログラムから操れる仕組み、という意味だよ