こんにちは。よっしーです(^^)
今日は、ルーティングについて解説しています。
背景
ルーティングについて調査する機会がありましたので、その時の内容を備忘として記事に残しました。
$types
これまでの例では、$types.d.ts
ファイルから型をインポートしてきました。これは、TypeScript(またはJSDoc型注釈を使用したJavaScript)を使用している場合に、SvelteKitが隠しディレクトリに作成するファイルで、ルートファイルを扱う際に型の安全性を提供します。例えば、export let data
をPageData
(または+layout.svelte
ファイルの場合はLayoutData
)で注釈すると、TypeScriptはdata
の型がload
から返されたものであると認識します。
// src/routes/blog/[slug]/+page.svelte
<script>
/** @type {import('./$types').PageData} */
export let data;
</script>
+page.js
、+page.server.js
、+layout.js
、+layout.server.js
ファイルに対して、PageLoad
、PageServerLoad
、LayoutLoad
、LayoutServerLoad
でload
関数を注釈すると、パラメータと戻り値が正しく型付けされます。
VS CodeやTypeScriptプラグインをサポートするIDEを使用している場合、これらの型を省略できます。SvelteのIDEツールが正しい型を挿入してくれるため、自分で型を記述しなくても型チェックが行われます。これは、コマンドラインツールのsvelte-check
でも機能します。
詳細は、$typesの省略に関するブログ記事をご覧ください。
その他のファイル
ルートディレクトリ内の他のファイルはSvelteKitによって無視されます。これにより、必要なルートと一緒にコンポーネントやユーティリティモジュールを配置できます。
複数のルートで必要なコンポーネントやモジュールは、$lib
に配置するのが良いです。
$lib
これは、src/lib、または config.kit.files.lib として指定されたディレクトリへの単純なエイリアスです。これにより、../../../../ なしで、一般的なコンポーネントやユーティリティ モジュールにアクセスできるようになります。
おわりに
今日は、 ルーティングについて解説しました。
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント