IT1-6-7 Localstorage og lagring


Eksempel med localstorage

Klikk


Localstorage


Localstorage i Javascript

I Javascript kan man få tilgang til localStorage på følgende måte

localStorage.variabelnavn = "ny verdi"

Localstorage i Svelte

❗ Boka viser en metode som ikke fungerer i Svelte! ❗

Løsning i Svelte

import { browser } from '$app/environment'
if (browser) {
	localStorage.variabelNavn = "verdi"
}

❗ Hver gang du skal bruke localStorage og du ikke er sikker på at koden kun vil kjøres i nettleseren, så bør du sjekke om browser == true. ❗


Oppgave: Lag en oppgaveliste


Kode så langt

<script>
	let oppgaveliste = [];
	let nyOppgave = '';
	const leggTilListe = () => {
		oppgaveliste.push(nyOppgave);
		oppgaveliste = oppgaveliste;
	};
</script>

<input type="text" bind:value={nyOppgave} /> <button on:click={leggTilListe}>Legg til</button>

<ul>
	{#each oppgaveliste as husketing}
		<li>{husketing}</li>
	{/each}
</ul>

Oppgaveliste fortsetter


Kode så langt

import { browser } from '$app/environment';
let oppgaveliste = [];
let nyOppgave = '';
if (browser) {
	if (localStorage.hasOwnProperty('oppgaver')) {
		oppgaveliste = localStorage.oppgaver.split(',');
	}
}

const leggTilListe = () => {
	oppgaveliste.push(nyOppgave);
	localStorage.oppgaver = oppgaveliste.join(',');
	oppgaveliste = oppgaveliste;
};

<script>
	import { browser } from '$app/environment';
	let oppgaveliste = [];
	let nyOppgave = '';
	if (browser) {
		if (localStorage.hasOwnProperty('oppgaver')) {
			oppgaveliste = localStorage.oppgaver.split(',');
		}
	}
	const leggTilListe = () => {
		oppgaveliste.push(nyOppgave);
		localStorage.oppgaver = oppgaveliste.join(',');
		oppgaveliste = oppgaveliste;
	};
	const slettOppgaver = () => {
		oppgaveliste = [];
		localStorage.oppgaver = '';
	};
</script>
<input type="text" bind:value={nyOppgave} /> <button on:click={leggTilListe}>Legg til</button>
<ul>
	{#each oppgaveliste as husketing}
		<li>{husketing}</li>
	{/each}
</ul>
<button on:click={slettOppgaver}>Slett oppgaver!</button><!-- KOMMENTAREN ER KUN FOR Å GJØRE TEKSTBOKSEN BREDERE -->

🐄-klikker