SvelteKit provides file-based routing where files in the routes directory automatically become pages. URLs correspond to file paths. Supports dynamic routes, nested layouts, and route parameters.
Route groups organize routes using (group) syntax. Don't affect URL structure. Share layouts within groups. Support multiple groups. Help organize large applications.
Data loading uses +page.js or +page.server.js files. Export load function for data fetching. Returns props for page component. Supports server-side loading.
Nested layouts use multiple +layout.svelte files. Each level adds layout. Support layout inheritance. Handle layout data. Share layout between routes.
Route caching implements caching strategies. Handle data caching. Support page caching. Implement cache invalidation. Manage cache lifecycle.
Route optimization includes code splitting, preloading. Handle lazy loading. Support route prioritization. Implement performance monitoring.
Route parameters accessed through page.params. Example: export let data; const { slug } = data. Available in +page.svelte and +page.server.js files.
Redirects use redirect function from @sveltejs/kit. Can redirect in load functions or actions. Support temporary/permanent redirects. Handle authentication redirects.
Route guards protect routes using load functions. Check authentication/authorization. Return redirect for unauthorized access. Support async checks.
Create a route by adding a +page.svelte file in the routes directory. Example: src/routes/about/+page.svelte becomes '/about'. File structure mirrors URL structure.
Dynamic routes use square brackets in file names. Example: [slug]/+page.svelte creates dynamic segment. Parameters available through page store. Support multiple dynamic segments.
Layout files (+layout.svelte) provide shared UI for multiple routes. Define common elements like navigation, footer. Support nested layouts. Content injected via <slot>.
Route debugging tracks routing issues. Handle debugging tools. Support state inspection. Implement debug logging. Manage debug output.