用途:为 SvelteKit 项目中的数据流提供指导,覆盖 load 函数、表单 action、服务端与客户端边界、序列化以及失效处理。
主要能力与要点:
- 文件选择:仅服务端(数据库/密钥)用 +page.server.ts;通用(两端运行)用 +page.ts;API 用 +server.ts。
- Load 决策:需要服务端资源用 server load;需要客户端 API 用 universal load。
- 表单 action:始终放在 +page.server.ts。错误返回 fail(),导航用 throw redirect(),失败用 throw error()。
- 环境变量:实验标志启用时,优先使用显式环境变量(src/env.ts 与 $app/env/private|public)。$app/env/private 仅服务端可用,只有确实安全的值才标记为 public。
- 序列化:server load 返回的数据必须可 JSON 序列化,不能包含类实例或函数。
- 失效:客户端认证后可使用 invalidateAll()。
使用方式:按参考文件 load-functions.md、form-actions.md、serialization.md、error-redirect-handling.md、client-auth-invalidation.md、explicit-environment-variables.md 查阅对应主题。示例中 server load 通过 locals 获取用户并返回可序列化对象;action 读取 formData,缺失字段返回 fail(400, ...),成功后 throw redirect(303, '/success')。
适用场景:SvelteKit 应用的数据加载、表单提交、服务端与客户端数据边界设计、认证后数据刷新及环境变量管理。
限制:资料未提供安装命令、收费信息、平台支持范围或具体版本要求;示例代码仅作模式说明,实际使用需结合项目配置。最后验证日期为 2026-06-08。