sveltekit-data-flow について
SvelteKit 開発者向けに、データ読み込み、フォーム処理、エラー制御を扱うコーディングスキルです。サーバー専用処理とユニバーサル処理の配置や、シリアライズのルールを説明します。
主な機能
- 01サーバーとユニバーサル load の区別
- 02フォーム action の処理パターン
- 03エラーとリダイレクトの扱い
- 04シリアライズ制約の説明
- 05明示的な環境変数の利用案内
活用シーン
- 01ページデータの読み込み場所の選定
- 02サーバー側フォーム送信の実装
- 03認証変更後のクライアントデータ無効化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ spences10/ skills --skill sveltekit-data-flowインストール後、Claude Code で/sveltekit-data-flowを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/client-auth-invalidation.mderror-redirect-handling.mdexplicit-environment-variables.mdform-actions.mdload-functions.mdserialization.md詳細
SvelteKit のデータフロー
クイックスタート
環境変数: 実験的なフラグが有効な場合は、明示的な環境変数(src/env.ts + $app/env/private|public)を優先してください。
どのファイルを使いますか? サーバー専用(DB/シークレット):+page.server.ts |
ユニバーサル(両方で実行):+page.ts | API:+server.ts
ロードの判断: サーバーリソースが必要ですか? → サーバーロード | クライアント API が必要ですか? → ユニバーサルロード
フォームアクション: 常に +page.server.ts を使用してください。エラーには fail() を返し、
移動するには redirect() をスローし、失敗には error() をスローします。
例
// +page.server.ts
import { fail, redirect } from '@sveltejs/kit';
export const load = async ({ locals }) => {
const user = await db.users.get(locals.userId);
return { user }; // Must be JSON-serializable
};
export const actions = {
default: async ({ request }) => {
const data = await request.formData();
const email = data.get('email');
if (!email) return fail(400, { email, missing: true });
await updateEmail(email);
throw redirect(303, '/success');
},
};
参考ファイル
- load-functions.md - サーバーと ユニバーサル
- form-actions.md - フォーム処理の パターン
- serialization.md - シリアライズできるもの/できないもの
- error-redirect-handling.md - fail/redirect/error
- client-auth-invalidation.md - クライアント側認証後の invalidateAll()
- explicit-environment-variables.md - 型付けされ、検証済みの環境変数
注記
- サーバーロード →
dataパラメーターを介したユニバーサルロード | 必ずthrow redirect()/error()を使用してください - サーバーロードからクラスインスタンス/関数を渡すことはできません(シリアライズできません)
$app/env/privateはサーバー専用です。本当に安全な値だけを public として指定してください- 最終確認日: 2026-06-08
コメント
Markdown 対応