关于 sveltekit-data-flow
为 SvelteKit 开发者提供数据加载、表单处理和错误控制的编码技能,按路由文件职责说明服务端与通用逻辑的选择及序列化规则。
主要功能
- 01区分服务端与通用 load
- 02说明表单 actions 处理模式
- 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)。
使用哪个文件? 仅限服务器端(数据库/机密):+page.server.ts |
通用(两端均运行):+page.ts | API:+server.ts
加载决策: 需要服务器资源?→ 服务器端 load | 需要客户端 API?→ 通用 load
表单操作: 始终使用 +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 - 类型化、经过验证的环境变量
备注
- 服务器端 load → 通过
data参数传递给通用 load | 始终throw redirect()/error() - 服务器端 load 不得返回类实例/函数(无法序列化)
$app/env/private仅限服务器端;仅将确实安全的值标记为公开- 最后验证时间: 2026-06-08
评论
支持 Markdown