Läsa och skriva localStorage i React
Åtkom localStorage säkert i React-hooks, hantera SSR-miljöer och serialisera komplext tillstånd.
Läsa och skriva localStorage i React är en gratis lektion i React Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för React Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i React Academy innehåller totalt 4 lektioner.
localStorage-API:t
localStorage är ett inbyggt lagringsutrymme i webbläsaren med fyra centrala metoder: setItem(key, value), getItem(key), removeItem(key) och clear(). Data finns kvar efter omladdningar av sidan och omstarter av webbläsaren.
Det finns på objektet window och är avgränsat per origin, vilket innebär att varje domän har sitt eget separata lagringsutrymme.
Det är synkront och blockerande
Varje anrop till localStorage körs synkront på huvudtråden. Läsning eller skrivning av stora datamängder kan blockera rendering och få gränssnittet att kännas ryckigt.
Håll därför lagrade värden små och undvik att skriva vid varje tangenttryckning eller rullningshändelse.
Det lagrar endast strängar
localStorage kan endast lagra strängar. För att lagra ett objekt eller en array måste Ni först serialisera det med JSON.stringify(value) innan Ni anropar setItem.
Om Ni lagrar något som inte är en sträng direkt omvandlas det automatiskt, så ett objekt blir den oanvändbara strängen [object Object].
Parsa med felhantering
Vid läsning anropar Ni JSON.parse(localStorage.getItem(key)), men parsningen kan kasta ett undantag om den lagrade strängen är skadad eller har skrivits av en annan källa.
Omslut parsningen i en try/catch och använd ett standardvärde om parsningen misslyckas, så att en felaktig post inte kraschar komponenten.
Kontrollera tillgängligheten
localStorage kan inte alltid användas: vid serverrendering finns inte window, och vissa lägen för privat surfning kastar ett undantag vid skrivning. Skydda åtkomsten med en funktionskontroll.
Ett säkert test är en try/catch som lägger till och tar bort en dummy-nyckel och returnerar false om ett undantag kastas.
Kapacitetsgränsen på cirka 5 MB
De flesta webbläsare begränsar localStorage till ungefär fem megabyte per origin. Om gränsen överskrids kastas ett QuotaExceededError vid skrivning.
Det gör localStorage lämpligt för små datamängder, men till ett dåligt val för bilder, stora datamängder eller cachade API-svar.
Lämpliga data
Bra kandidater är små, icke-känsliga delar av UI och användarens state: temainställning, om sidofältet är hopfällt, senast använda filter, stängda banners och osparade formulärutkast.
Detta är värden som ska överleva en omladdning, men som inte behöver en serverförfrågan.
Olämpliga data
Undvik att lagra hemligheter som tokens eller lösenord, eftersom alla skript på sidan kan läsa localStorage, vilket gör det sårbart för XSS. Undvik också stora objekt och auktoritativ serverdata.
Känsliga autentiseringsdata hör hemma i httpOnly-cookies, och kanoniska data hör hemma på servern.
localStorage jämfört med sessionStorage
Båda har samma API, men sessionStorage rensas när fliken stängs och delas inte mellan flikar. localStorage finns kvar permanent och delas mellan alla flikar med samma origin.
Välj sessionStorage för kortlivade data som är specifika för en flik och localStorage för bestående inställningar.
Jämfört med cookies och IndexedDB
Cookies är små och skickas med varje HTTP-begäran, vilket passar för autentisering men slösar bandbredd för allmänna data. IndexedDB är en asynkron databas för stora, strukturerade datamängder som vida överskrider gränsen på 5 MB.
Välj cookies för autentisering som läses av servern, localStorage för små klientinställningar och IndexedDB för stora eller komplexa data.
Ett enkelt läs-/skrivmönster
En minimal hjälpfunktion skriver med localStorage.setItem(key, JSON.stringify(value)) och läser med en skyddad try/catch runt JSON.parse(localStorage.getItem(key)), och returnerar ett standardvärde vid fel.
Den här lilla wrappern samlar serialisering och felhantering på ett ställe.
Snabbtest
Testa dina kunskaper om datatyper i localStorage.
Sammanfattning
Du har lärt dig localStorage-API:t, att det är synkront, endast lagrar strängar och har en gräns på nära 5 MB, samt hur du parsar säkert och kontrollerar tillgängligheten för SSR och privat läge.
Du har också jämfört det med sessionStorage, cookies och IndexedDB för att kunna välja rätt lagringsplats.
Lär dig React med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 88
- Lektioner
- 324
Vanliga frågor
Är lektionen ”Läsa och skriva localStorage i React” gratis?
Ja – hela texten till ”Läsa och skriva localStorage i React” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i React Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i React Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Läsa och skriva localStorage i React”?
Åtkom localStorage säkert i React-hooks, hantera SSR-miljöer och serialisera komplext tillstånd. Ni övar på React Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig React Academy?
Du behöver inga förkunskaper. Utbildningen i React Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Läsa och skriva localStorage i React”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här React Academy-lektionen?
Ja. Varje React Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Läsa och skriva localStorage i React
- Synkronisera tillstånd med localStorage
- Hantera lagringshändelser mellan flikar
- sessionStorage, IndexedDB och att välja rätt API