【くらいあんとさいどるーてぃんぐ】
クライアントサイドルーティング とは?
最終更新:
💡 URLに合わせて、ブラウザの中で画面を切り替える
URLと表示する画面の対応をブラウザ側のJavaScriptで扱い、ページ全体を読み込み直さずに画面を切り替える仕組み。遷移先のデータやコードをサーバーから取得する場合もある。
📌 このページのポイント
- URLのパターンと表示する画面を対応付ける
- ページ全体の再読み込みを避けても、データなどの通信は起こり得る
- History APIを使う方式や、URLのハッシュを使う方式がある
- 直接アクセスや再読み込みには、配信側のルート設定も関わる
URLが変わるのに、ページ全体を読み直さないのはなぜ?
クライアントサイドルーティングでは、ブラウザ側のJavaScriptがURLに対応する画面を選んで表示するよ。たとえば/aboutへ移ったらAbout画面に切り替える。React RouterやVue Routerなどで実装できるんだ。
サーバーには何も取りに行かない?
遷移先のデータや、まだ読み込んでいないコードを取得する場合はあるよ。ページ全体を再読み込みしないことと、通信をしないことは別なんだ。表示までの速さも、取得するものや処理によるよ。
URLや戻るボタンは、どう扱うの?
History APIを使う方式ではpushState()などで履歴とURLを更新し、戻る・進むで起きるpopstateを扱うよ。ただしpushState()を呼ぶだけではpopstateは発生せず、画面も自動では変わらない。ルーター側で表示を更新するんだ。
URLと画面の対応は、どう決めるの?
ルーターにパスと画面の対応を設定するよ。/aboutならAbout、/ならHome、といった具合だね。別の方式として、URLの#より後ろを使うハッシュルーティングもあるんだ。
URLの/aboutを直接開いても同じ画面になる?
📖 おまけ:英語の意味
「Client-side Routing」 = クライアント側での経路制御
💬 Client-sideはブラウザなどのクライアント側、Routingは行き先を決めること。URLから表示する画面を選ぶ処理をブラウザで行うよ。サーバーとの通信が一切なくなるという意味ではないんだ。