Svelte入門:リファレンス @sveltejs/kit -Vol.9-

スポンサーリンク
Svelte入門:リファレンス @sveltejs/kit -Vol.9- 用語解説
Svelte入門:リファレンス @sveltejs/kit -Vol.9-
この記事は約5分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、SvelteKitのリファレンスについて解説しています。

スポンサーリンク

背景

SvelteKitのリファレンスについて調査する機会がありましたので、その時の内容を備忘として記事に残しました。

@sveltejs/kit

Navigation

Navigationインターフェース:

  1. from: NavigationTarget | null;
    ナビゲーションがどこから開始されたか
  2. to: NavigationTarget | null;
    ナビゲーションがどこに向かっている/向かったか
  3. type: Exclude<NavigationType, 'enter'>;
    ナビゲーションの種類:
  • form: ユーザーが<form>を送信
  • leave: タブが閉じられるか、異なるドキュメントへのナビゲーションが発生して、アプリを離れる
  • link: リンクのクリックによるナビゲーション
  • goto: goto(...)呼び出しまたはリダイレクトによるナビゲーション
  • popstate: 戻る/進むナビゲーションによって開始
  1. willUnload: boolean;
    ナビゲーションによってページがアンロードされるかどうか(クライアントサイドのナビゲーションでない場合)
  2. delta?: number;
    履歴の戻る/進むナビゲーションの場合、前後に移動するステップ数
  3. complete: Promise<void>;
    ナビゲーションが完了すると解決し、失敗または中断された場合は拒否されるPromise。willUnloadナビゲーションの場合、Promiseは決して解決されない

解説

Navigationインターフェースは、SvelteKitにおけるナビゲーション状態と動作を管理する重要なインターフェースです。

  1. ナビゲーションの追跡
  • fromtoプロパティにより、ナビゲーションの出発点と目的地を追跡
  • ナビゲーションの方向性と文脈を把握可能
  1. ナビゲーションタイプの分類
  • 5つの異なるナビゲーションタイプを定義
  • ユーザーアクション(フォーム送信、リンククリック)
  • プログラム的なアクション(goto、リダイレクト)
  • ブラウザアクション(戻る/進む)
  • アプリケーション離脱
  1. ページライフサイクル管理
  • willUnloadによるページアンロードの予測
  • クライアントサイドナビゲーションとの区別
  • リソース管理の最適化が可能
  1. 履歴ナビゲーション
  • deltaによる履歴移動の制御
  • 戻る/進む操作の詳細な制御が可能
  1. 非同期処理の制御
  • complete Promiseによるナビゲーション完了の追跡
  • エラーハンドリングとナビゲーション状態の監視
  • アンロードケースの特別な扱い

このインターフェースは、SPAにおける複雑なナビゲーション管理を効果的に実現するための基盤を提供します。

NavigationEvent

NavigationEventインターフェース定義:

interface NavigationEvent
    Params extends Partial<Record<string, string>>,
    RouteId extends string | null
> {…}

プロパティ:

  1. params: Params;
    現在のページのパラメータ – 例えば /blog/[slug] のようなルートに対して、{ slug: string } オブジェクト
  2. route: {…}
    現在のルートに関する情報
  3. id: RouteId;
    現在のルートのID – 例えば src/routes/blog/[slug] に対して、/blog/[slug] となる
  4. url: URL;
    現在のページのURL

解説

NavigationEventは、SvelteKitのルーティングシステムにおけるナビゲーション情報を扱うための基本インターフェースです。

  1. 型パラメータの役割:
  • Params: URLパラメータの型を定義
  • RouteId: ルートの識別子の型を定義
  • どちらも柔軟な型制約を可能にする
  1. ルートパラメータの処理:
// 例:/blog/hello-world に対して
{
  params: { slug: 'hello-world' },
  route: { id: '/blog/[slug]' }
}
  1. 主な用途:
  • 動的ルーティングの実装
  • ページ遷移の追跡
  • URLパラメータの型安全な取り扱い
  • ルート情報へのアクセス
  1. 実践的な使用例:
export const load = (event: NavigationEvent) => {
  const { slug } = event.params;
  const currentUrl = event.url;
  // slugやURLを使用したデータ取得など
};

このインターフェースは、型安全性を保ちながら、ルーティングとナビゲーションに関する重要な情報へのアクセスを提供します。

おわりに

今日は、 SvelteKitのリファレンスについて解説しました。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました