Skip to main content
Svelte 基础
介绍
响应式
属性
逻辑
事件
绑定
类和样式
Actions
过渡动画
Svelte 进阶
高级响应性
复用内容
Motion
高级绑定
高级过渡效果
Context API
特殊元素
<script module>
后续步骤
SvelteKit 基础
介绍
路由
加载数据
请求头和 Cookie
共享模块
表单
API 路由
$app/state
错误和重定向
SvelteKit 进阶
钩子函数
页面选项
链接选项
高级路由
高级加载
环境变量
结论

传递给 handleevent 对象与传递给 +server.js 文件中的 API 路由+page.server.js 文件中的表单 actions以及 +page.server.js+layout.server.js 中的 load 函数的对象是相同的 — 都是 RequestEvent 的实例。

它包含许多有用的属性和方法,其中一些我们已经遇到过:

  • cookiescookies API
  • fetch — 标准的 Fetch API,具有额外的功能
  • getClientAddress() — 获取客户端 IP 地址的函数
  • isDataRequest — 如果浏览器在客户端导航期间请求页面数据则为 true,如果直接请求页面/路由则为 false
  • locals — 存放任意数据的地方
  • params — 路由参数
  • requestRequest 对象
  • route — 一个具有 id 属性的对象,表示匹配到的路由
  • setHeaders(...) — 用于在响应中设置 HTTP 头的函数
  • url — 表示当前请求的 URL 对象

一个有用的模式是在 handle 中向 event.locals 添加一些数据,这样就可以在后续的 load 函数中读取这些数据:

src/hooks.server
export async function handle({ event, resolve }) {
	event.locals.answer = 42;
	return await resolve(event);
}
src/routes/+page.server
export function load(event) {
	return {
		message: `the answer is ${event.locals.answer}`
	};
}

在 GitHub 编辑此页面

上一页 下一页
1
2
3
4
5
<script>
	let { data } = $props();
</script>
 
<h1>{data.message}</h1>