svelte@latest betyr at prosjekttypen er Svelte, og at vi skal brukes siste versjon av Svelte
. betyr at vi skal opprette prosjektet i vår nåværende mappe
Gjør følgende valg ved hjelp av piltastene, mellomromstasten og enter
Enter for å bekrefte at vi oppretter prosjektet i nåværende mappe
Velger Skeleton project for å få et blankt prosjekt uten innhold
Velger ingen Type checking siden vi ikke bruker dette i IT1
Velger ESLint for å hjelpe oss å finne feil og problemer i koden, samt Prettier som formaterer koden vår på en fin måte
Skriver inn npm install for å installere alle pakkene som npm har funnet ut at vi trenger til prosjektet
Skriver npm run dev -- --open for å starte en SvelteServer som kompilerer Sveltekoden vår, lager den ferdige HTML-, CSS- og Javascript-koden og viser oss nettsiden. Denne serveren må kjøre på datamaskinen din for at du skal kunne se nettsiden.
run dev kjører et npm script kalt dev som du finner i fila package.json. Hvis du leter her så vil du se at dev egentlig kjører kommandoen vite dev.
-- disse to bindestrekene gjør at Svelte serveren blir tilgjengelig på nettverket på adressen localhost:5173.
--open gjør at nettsidene åpnes i nettleseren automatisk
Lenker i Svelte
Hvis man oppretter en mappe kalt katt under src/routes/ og legger inn en +page.svelte inn i den mappa (slik at full sti blir src/routes/katt/+page.svelte) så blir den Svelte-fila prosessert og tilgjengelig på URLen katt. Mappenavnet blir altså navnet på URLen.
I Svelte-fila +page.svelte så importerer vi arrayet med objekter til variabelen laerere. Deretter kan vi vise alle lærerne og bilene deres med en {#each}-blokk.
<script>
import laerere from '$lib/objekter.json'
</script>
{#each laerere as laerer}
<p>{laerer.navn} kjører {laerer.bil}.</p>
{/each}
Dynamiske variable
let a = 2
let b = 3
$: c = a + b
Her er c deklarert som en dynamisk variabel. Dersom vi oppdaterer a eller b så vil coppdateres automatisk.
Scoping i CSS
CSS som skrives i Svelte er scopet (begrenset) til den nåværende siden. Hvis man ønsker å endre på body eller html så er man nødt til å gå til det globale scopet ved :global(body) {}.