JavaScript og TypeScript
JavaScript er dynamisk typet: typen følger verdien ved runtime. TypeScript legger til statisk typekontroll under utvikling og blir til JavaScript før kjøring.
- Kodelesing: Arrow functions brukes til callbacks og datatransformasjoner. ES modules deler kode med import/export, og destructuring henter felt fra objekter.
- Data: Interfaces og union types beskriver forventede verdier; type inference kan utlede typen.
map transformerer, filter velger og reduce samler verdier.
- Immutability: Lag nye verdier fremfor å mutere eksisterende data. Dette gjør datatransformasjoner tydeligere og er relevant når React-state oppdateres.
Verktøy: Node.js kjører utviklingsverktøyene · npm/pnpm håndterer pakker · Vite gir development server og build · ESLint analyserer kode.
React og komponenter
React er et JavaScript-bibliotek som bygger UI av gjenbrukbare komponenter. Utvikleren beskriver resultatet for gitte data fremfor å styre hvert enkelt DOM-steg.
- JSX: HTML-lignende syntaks beskriver React-elementer inne i JavaScript eller TypeScript. Funksjonelle komponenter deler grensesnittet i tydelige ansvarsområder.
- Props: Data sendes fra parent til child og behandles som read-only av mottakeren. Samme komponent kan gjenbrukes med ulike data.
- Events og callbacks: Brukerhandlinger utløser funksjoner. En child kan kalle en callback fra parent slik at dataenes eier oppdaterer state.
Data ned gjennom props → handlinger tilbake gjennom callbacks → state endres → UI rendres.
State og dataflyt
State er data som kan endres og påvirker UI. useState gir lokal state; en oppdatering får React til å evaluere grensesnittet på nytt, uten at hele DOM-en nødvendigvis erstattes.
- Eierskap: Løft delt state til nærmeste felles parent og unngå flere kopier av samme verdi. Context og
useContext deler data i et subtree når prop drilling blir upraktisk.
- Effects:
useEffect håndterer side effects og synkronisering utenfor ren rendering. Verdier som kan beregnes direkte fra props eller state trenger normalt ikke en effect.
- Web Storage:
localStorage bevarer data mellom besøk, mens sessionStorage gjelder tabben eller sesjonen. Lagring er ikke React-state og erstatter ikke tydelig dataeierskap.