Technical knowledge for SvelteKit 5 development. Build reactive applications with Svelte's compile-time magic. Expert in SvelteKit, stores, and reactive patterns...
Technical reference for SvelteKit 5 development.
/huntabyte/shadcn-svelte$state, $derived, $effect, $props.svelte componentsonclick={handler} syntax+page.svelte, +page.server.ts, +layout.svelteload functions in +page.server.ts+page.server.ts actions<script lang="ts">
let count = $state(0);
let doubled = $derived(count * 2);
let { user, onUpdate } = $props<{
user: User;
onUpdate: (user: User) => void;
}>();
$effect(() => {
console.log('Count changed:', count);
});
</script>
// stores.ts
import { writable, derived } from "svelte/store";
export const user = writable<User | null>(null);
export const isLoggedIn = derived(user, ($user) => $user !== null);
// +page.server.ts
export const load = async ({ params, locals }) => {
const property = await db.property.findUnique({
where: { id: params.id },
});
return { property };
};
export const actions = {
default: async ({ request, locals }) => {
const data = await request.formData();
// handle form submission
},
};
<script lang="ts">
interface Props {
title: string;
subtitle?: string;
onSave?: (data: FormData) => void;
}
let { title, subtitle = '', onSave }: Props = $props();
</script>
Every component should have a header comment block:
<!--
ComponentName - Brief description
ARCHITECTURE:
Layer: Component/Page
Pattern: [Pattern Name]
PATTERNS USED:
- Pattern 1
- Pattern 2
DEPENDENCIES:
External: [npm packages]
Internal: [local imports]
INTEGRATION:
- Used by: [files]
- Spec: [spec file if exists]
-->