SvelteKitはいくつかのフックを提供します。これらは、フレームワークのデフォルトの動作をインターセプトしてオーバーライドする方法です。
最も基本的なフックはhandle
で、src/hooks.server.js
にあります。これはevent
オブジェクトとresolve
関数を取得し、Response
を返します。
resolve
で魔法が起こります。SvelteKitは、着信リクエストURLをアプリのルートに一致させ、関連するコード(+page.server.js
および+page.svelte
ファイルなど)をインポートし、ルートに必要なデータをロードし、レスポンスを生成します。
デフォルトのhandle
フックは次のようになります。
src/hooks.server
export async function handle({ event, resolve }) {
return await resolve(event);
}
ページ(APIルートとは対照的に)の場合、transformPageChunk
を使用して生成されたHTMLを変更できます。
src/hooks.server
export async function handle({ event, resolve }) {
return await resolve(event, {
transformPageChunk: ({ html }) => html.replace(
'<body',
'<body style="color: hotpink"'
)
});
}
完全に新しいルートを作成することもできます。
src/hooks.server
export async function handle({ event, resolve }) {
if (event.url.pathname === '/ping') {
return new Response('pong');
}
return await resolve(event, {
transformPageChunk: ({ html }) => html.replace(
'<body',
'<body style="color: hotpink"'
)
});
}
前へ 次へ
1
2
<h1>hello world</h1>
<a href="/ping">ping</a>