Lese og skrive localStorage i React
Få trygg tilgang til localStorage i React-hooks, håndter SSR-miljøer og serialiser kompleks tilstand.
Lese og skrive localStorage i React er en gratis leksjon i React Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i React Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i React Academy inneholder totalt 4 leksjoner.
localStorage-API-et
localStorage er et innebygd lager i nettleseren med fire sentrale metoder: setItem(key, value), getItem(key), removeItem(key) og clear(). Dataene beholdes etter at siden lastes inn på nytt og nettleseren startes på nytt.
Det ligger på window-objektet og er avgrenset per origin, noe som betyr at hvert domene har sitt eget isolerte lager.
Det er synkront og blokkerende
Alle kall til localStorage kjøres synkront på hovedtråden. Å lese eller skrive store datamengder kan blokkere gjengivelsen og få grensesnittet til å føles hakkete.
Hold derfor lagrede verdier små, og unngå å skrive ved hvert tastetrykk eller hver rullehendelse.
Det lagrer bare strenger
localStorage kan bare lagre strenger. For å lagre et objekt eller en matrise må du først serialisere den med JSON.stringify(value) før du kaller setItem.
Hvis du lagrer en verdi som ikke er en streng direkte, blir den konvertert, slik at et objekt blir til den ubrukelige strengen [object Object].
Parsing med feilhåndtering
Når du leser, kaller du JSON.parse(localStorage.getItem(key)), men parsing kan kaste en feil hvis den lagrede strengen er ødelagt eller ble skrevet av en annen kilde.
Legg parsingen i en try/catch, og bruk en standardverdi som reserve, slik at en ugyldig oppføring ikke får komponenten til å krasje.
Kontrollere tilgjengelighet
localStorage kan ikke alltid brukes: under servergjengivelse finnes ikke window, og enkelte moduser for privat nettlesing kaster en feil ved skriving. Sikre tilgangen med en funksjonssjekk.
En trygg test er en try/catch som setter og fjerner en testnøkkel, og returnerer false hvis den kaster en feil.
Kapasitetsgrensen på ~5 MB
De fleste nettlesere begrenser localStorage til omtrent fem megabyte per origin. Hvis grensen overskrides, utløses en QuotaExceededError ved lagring.
Dette gjør localStorage egnet for små datamengder, men lite egnet for bilder, store datasett eller bufrede API-svar.
Egnede data
Gode kandidater er små, ikke-sensitive deler av brukergrensesnittet og brukerens tilstand: temainnstilling, tilstanden til et sammenfoldet sidefelt, sist brukte filtre, avviste bannere og ulagrede skjemautkast.
Dette er verdier du vil skal bevares når siden lastes på nytt, men som ikke trenger en tur-retur til serveren.
Uegnede data
Unngå å lagre hemmeligheter som tokens eller passord, fordi alle skript på siden kan lese localStorage, noe som gjør det sårbart for XSS. Unngå også store objekter og autoritativ tilstand fra serveren.
Sensitive autentiseringsdata hører hjemme i httpOnly-cookies, og kanoniske data hører hjemme på serveren.
localStorage kontra sessionStorage
Begge har samme API, men sessionStorage tømmes når fanen lukkes og deles ikke mellom faner. localStorage varer på ubestemt tid og deles mellom alle faner med samme origin.
Velg sessionStorage for kortvarige, fane-spesifikke data og localStorage for varige innstillinger.
Kontra cookies og IndexedDB
Cookies er små og sendes med hver HTTP-forespørsel, noe som passer for autentisering, men sløser med båndbredde når de brukes til generelle data. IndexedDB er en asynkron database for store, strukturerte datamengder, langt over grensen på 5 MB.
Velg cookies for autentisering som skal leses av serveren, localStorage for små klientinnstillinger og IndexedDB for store eller komplekse data.
Et enkelt lese- og skrivemønster
En minimal hjelpefunksjon skriver med localStorage.setItem(key, JSON.stringify(value)) og leser med en sikret try/catch rundt JSON.parse(localStorage.getItem(key)), og returnerer en standardverdi hvis noe mislykkes.
Denne lille innpakningen samler serialisering og feilhåndtering på ett sted.
Kort kontroll
Test forståelsen din av datatypene i localStorage.
Oppsummering
Du har lært om localStorage-API-et, at det er synkront, bare støtter strenger og har en grense på rundt 5 MB, samt hvordan du analyserer data trygt og sjekker tilgjengeligheten for SSR og privat modus.
Du har også sammenlignet det med sessionStorage, cookies og IndexedDB for å velge riktig lagringssted.
Lær deg React med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 88
- Leksjoner
- 324
Ofte stilte spørsmål
Er leksjonen «Lese og skrive localStorage i React» gratis?
Ja – hele teksten i «Lese og skrive localStorage i React» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av React Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i React Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Lese og skrive localStorage i React»?
Få trygg tilgang til localStorage i React-hooks, håndter SSR-miljøer og serialiser kompleks tilstand. Du øver på React Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med React Academy?
Ingen tidligere erfaring er nødvendig. React Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Lese og skrive localStorage i React»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne React Academy-leksjonen?
Ja. Alle React Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Lese og skrive localStorage i React
- Synkronisere tilstand med localStorage
- Håndtere storage-hendelser på tvers av faner
- sessionStorage, IndexedDB og valg av riktig API