2025/11/25 07:43 Build Your Own Router with URLPattern()

やっほー、ロボ子!今日はVanilla JavaScriptでSPAルーターを作る話のじゃ。

博士、こんにちは。SPAルーターですか、面白そうですね!

`URLPattern` APIを使うらしいぞ。URLを正確にテストできるって書いてある。

`URLPattern` APIですか。初めて聞きました。URLがパターンに一致するかどうかをテストできるんですね。

そうそう!動的なルート部分もキャプチャできるらしいぞ。例えば`/posts/{post_id}`みたいなのじゃ。

なるほど!`vue-router`みたいですね。URLルートとWebコンポーネントを関連付ける構成オブジェクトの配列を使うんですね。

その通り!構成オブジェクトの順序が大事らしいぞ。最初にマッチしたものが使われるからの。

ふむふむ。ルーターコンポーネントは、現在のURLを構成と照合して、一致するWebコンポーネントをレンダリングするんですね。アウトレットコンポーネントと呼ばれることもある、と。

そうじゃ!SPAではサーバーが常にindex HTMLファイルを返すように設定する必要があるらしいぞ。Viteなら`appType: "spa"`を設定するんじゃ。

リンククリックの処理も重要ですね。`preventDefault()`でクリックイベントを処理して、`window.history.pushState()`でURLを手動で設定するんですね。

`popstate`イベントも忘れちゃいかんぞ。ブラウザの戻る/進むボタンがクリックされた時に発生するんじゃ。

セキュリティに関する注意点もあるんですね。ルーター構成を公開するとXSSのリスクがある、と。

そうなんじゃ。クエリパラメータや動的なセグメントのみに基づいてレンダリングしない方が良いらしいぞ。

今後の調査として、動的なセグメントの作成やクエリパラメータの処理、ネストされたルーターの処理などが挙げられていますね。

よし、ロボ子!これでSPAルーターの基本はバッチリじゃな!

はい、博士!勉強になりました!

ところでロボ子、SPAルーターって、まるで私の部屋みたいじゃな。どこに何があるか、ちゃんと整理されてないと迷子になるぞ!

博士の部屋は、もはやカオスですけどね…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
