レイアウトデータの紹介で見たように、+page.svelte
および+layout.svelte
コンポーネントは、親のload
関数から返されたすべてのものにアクセスできます。
load
関数自体が親からのデータにアクセスできると便利な場合があります。これはawait parent()
で実行できます。
どのように動作するかを示すために、異なるload
関数から取得した2つの数を合計します。まず、src/routes/+layout.server.js
からデータを返します。
src/routes/+layout.server
export function load() {
return { a: 1 };
}
次に、src/routes/sum/+layout.js
でそのデータを取得します。
src/routes/sum/+layout
export async function load({ parent }) {
const { a } = await parent();
return { b: a + 1 };
}
ユニバーサル
load
関数は、親のサーバーload
関数からデータを取得できることに注意してください。逆は真ではありません。サーバーロード関数は、別のサーバーロード関数からのみ親データを取得できます。
最後に、src/routes/sum/+page.js
で、両方のload
関数から親データを取得します。
src/routes/sum/+page
export async function load({ parent }) {
const { a, b } = await parent();
return { c: a + b };
}
await parent()
を使用するときは、ウォーターフォールを導入しないように注意してください。親データに依存しない他のデータをfetch
できる場合は、最初にそれを行ってください。
前へ 次へ
1
2
3
<p>if a = 1 and b = a + 1, what is a + b?</p>
<a href="/sum">show answer</a>