Data Flow
+page.server.ts load() → return { item } → +page.svelte data.item
<script lang="ts">
import type { PageProps } from "./$types";
let { data }: PageProps = $props(); // typed by ./$types
</script>
./$types is generated by SvelteKit. If it is missing, run pnpm exec svelte-kit sync and restart the TypeScript server.- Older SvelteKit: use
PageData and { data }: { data: PageData }. - The item return but page.server.ts will be in the
data now.
Request flow
- First visit: server runs
load, renders +page.svelte to HTML, sends it. - Browser hydrates it, so clicks and inputs work.
- Clicking a link: only the new page's data is fetched, and the page is drawn in the browser.