レイアウトデータの紹介で見たように、+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>