Svelte Routing
Definisi
SvelteKit menangani routing lewat struktur folder di src/routes. Tiap file +page.svelte jadi halaman, +layout.svelte jadi pembungkus, dan +page.js/+page.server.js menyediakan load untuk ambil data sebelum render.
Kapan dipakai
Pakai SvelteKit saat butuh routing, SSR, dan data loading terstruktur tanpa setup manual. Untuk widget statis tanpa route, cukup Svelte murni.
Cara kerja
Struktur
src/routes/
+layout.svelte # wrap semua halaman
+page.svelte # /
about/+page.svelte # /about
blog/[slug]/+page.svelte # /blog/:slugLoad data
// blog/[slug]/+page.js
export async function load({ params }) {
const post = await getPost(params.slug);
return { post };
}<script>
export let data; // hasil load
</script>
<h1>{data.post.title}</h1>Navigasi
<script>
import { goto } from '$app/navigation';
</script>
<a href="/about">Tentang</a>
<button on:click={() => goto('/dashboard')}>Masuk</button>Struktur alur
Loading diagram...
Catatan implementasi
- Parameter dinamis:
[slug](satu),[...rest](catch-all),[[slug]](optional). loaddi+page.server.jsjalan di server; di+page.jsbisa client maupun server.export let datadi page otomatis dariload; di layout pakaiexport let datajuga.- Gunakan
$app/storesuntukpage(URL aktif) bila perlu reactive ke URL.
Kesalahan umum
- Lupa
export let data: hasil load tidak muncul di komponen. - Mutasi data load langsung: pakai
$:atau salin dulu. - Route param typo:
[slug]vs[slugin]membuat halaman 404. - Load berat di client: pindahkan ke
.server.jsbila tak boleh kelihatan di browser.