Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Håndtering av Tilstand med useState-Hooken | React Hooks og Context for Tilstandshåndtering
React Mastery

bookHåndtering av Tilstand med useState-Hooken

Hooken useState er en grunnleggende React-hook som gjør det mulig for funksjonelle komponenter å ha tilstand. Den gir en måte å deklarere og oppdatere tilstandsvariabler i en komponent.

Syntaks:

For å bruke hooken useState, kaller vi den og sender inn den opprinnelige tilstanden (initialState) som et argument. Den returnerer et array med to elementer: den nåværende tilstandsverdien (state) og en funksjon (setState) for å oppdatere tilstanden.

const [state, setState] = useState(initialState);
  • Det er mulig å velge hvilket som helst ord som navn på en state-variabel. Det anbefales å bruke et variabelnavn som nøyaktig beskriver hvilken tilstand som lagres eller oppdateres, for eksempel inputValue, page, number, name og lignende.

  • På samme måte har man fleksibilitet i valg av funksjonsnavn når man bruker setState-funksjonen. Likevel er det en standardkonvensjon å følge et bestemt mønster: navnet på setState-funksjonen bør starte med "set" etterfulgt av navnet på den tilhørende tilstandsvariabelen. For eksempel, hvis state-variabelen er mail, vil den tilhørende setState-funksjonen vanligvis hete setMail.

Merk

Når vi kaller setState, re-renderer React komponenten og oppdaterer tilstanden med den nye verdien. Det er viktig å merke seg at når man bruker useState, trenger ikke tilstandsvariabelen å være et objekt. Den kan være en primitiv verdi (som et tall, en streng eller en boolean) eller en kompleks verdi (som et array eller objekt).

Eksempel 1:

Vi skal bygge Counter-komponenten, som vil håndtere sin egen tilstand. Når knappen Increment klikkes, oppdateres tilstanden og komponenten rendres på nytt.

import React, { useState } from "react";

const Counter = () => {
  const [count, setCount] = useState(0);

  const increment = () => {
    setCount(count + 1);
  };

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={increment}>Increment</button>
    </div>
  );
};

I dette eksempelet brukes useState-hooken til å deklarere en tilstandsvariabel count med startverdi 0. Funksjonen setCount brukes til å oppdatere variabelen count hver gang knappen klikkes.

Forklaring linje for linje:

  • Linje 1: Vi importerer useState-hooken fra React-biblioteket for å benytte dens funksjonalitet;
  • Linje 3: Vi definerer Counter-komponenten ved å bruke konvensjonell funksjonssyntaks;
  • Linje 4: Vi initialiserer tilstanden ved hjelp av useState-hooken;
  1. count representerer verdien til telleren. Startverdien er 0, spesifisert i parentesen til useState(0);
  2. setCount er funksjonen som oppdaterer tilstanden ved behov.
  • Linje 6-8: Denne JavaScript arrow-funksjonen håndterer logikken for å oppdatere tilstanden. Den kjøres når "increment"-knappen klikkes. Inne i funksjonen bruker vi setCount-funksjonen for å oppdatere tilstanden;
  • Linje 10-15: Gjengir komponentens markup. På linje 12 vises den nåværende tilstandsverdien (count). Knappen på linje 13 bruker attributtet onClick for å definere funksjonen som skal kjøres ved klikk. I dette tilfellet sender vi inn increment-funksjonen.

Full app-kode:

Eksempel 2:

Vi konstruerer Form-komponenten med sin egen uavhengige tilstand. Brukeren blir bedt om å skrive inn navnet sitt i input-feltet, og avhengig av hva som skrives inn, vil vi endre det viste innholdet.

import React, { useState } from "react";

const Form = () => {
  const [userName, setUserName] = useState("");

  const handleChange = (event) => {
    const inputValue = event.target.value;
    setUserName(inputValue);
  };

  return (
    <div>
      <input
        type="text"
        value={userName}
        onChange={handleChange}
        placeholder="Your name"
      />
      <p>Hello, {userName}!</p>
    </div>
  );
};

I dette eksempelet brukes useState-hooken til å deklarere en tilstandsvariabel userName med en initialverdi som en tom streng. Funksjonen setUserName oppdaterer variabelen userName når det er nødvendig.

Forklaring linje for linje:

  • Linje 1: Vi importerer useState-hooken fra React-biblioteket for å bruke funksjonaliteten;
  • Linje 3: Vi definerer Form-komponenten ved å bruke standard funksjonssyntaks;
  • Linje 4: Vi setter initial tilstand ved å bruke useState-hooken;
    1. userName representerer verdien til input-feltet, som i utgangspunktet er satt til en tom streng (""), spesifisert i parentesen til useState("");
  1. setUserName er funksjonen som lar oss oppdatere tilstanden ved behov.
  • Linje 6-9: Denne JavaScript arrow-funksjonen håndterer logikken for å oppdatere tilstanden. Den utløses når brukeren skriver noe i feltet. Vi henter input-verdien i funksjonen ved å bruke event.target.value. Deretter bruker vi setUserName-funksjonen for å oppdatere tilstanden med verdien fra input-feltet;
  • Linje 11-21: Komponentens markup blir gjengitt.
    1. På linje 15 setter vi userName som initialverdi for input ved å bruke value-attributtet;
    2. På linje 16 bruker vi onChange-attributtet for å spesifisere funksjonen som skal kalles når det skjer en endring i input.

Full app-kode:

1. Hvilket av følgende utsagn er sant om useState-hooken?

2. Hva er formålet med setState-funksjonen som returneres av useState-hooken?

3. Hvordan setter du initialverdien for tilstanden når du bruker useState-hooken?

question mark

Hvilket av følgende utsagn er sant om useState-hooken?

Select the correct answer

question mark

Hva er formålet med setState-funksjonen som returneres av useState-hooken?

Select the correct answer

question mark

Hvordan setter du initialverdien for tilstanden når du bruker useState-hooken?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you explain how the useState hook works in more detail?

What are some common use cases for useState in React components?

Can you show how to use multiple useState hooks in a single component?

Awesome!

Completion rate improved to 2.17

bookHåndtering av Tilstand med useState-Hooken

Sveip for å vise menyen

Hooken useState er en grunnleggende React-hook som gjør det mulig for funksjonelle komponenter å ha tilstand. Den gir en måte å deklarere og oppdatere tilstandsvariabler i en komponent.

Syntaks:

For å bruke hooken useState, kaller vi den og sender inn den opprinnelige tilstanden (initialState) som et argument. Den returnerer et array med to elementer: den nåværende tilstandsverdien (state) og en funksjon (setState) for å oppdatere tilstanden.

const [state, setState] = useState(initialState);
  • Det er mulig å velge hvilket som helst ord som navn på en state-variabel. Det anbefales å bruke et variabelnavn som nøyaktig beskriver hvilken tilstand som lagres eller oppdateres, for eksempel inputValue, page, number, name og lignende.

  • På samme måte har man fleksibilitet i valg av funksjonsnavn når man bruker setState-funksjonen. Likevel er det en standardkonvensjon å følge et bestemt mønster: navnet på setState-funksjonen bør starte med "set" etterfulgt av navnet på den tilhørende tilstandsvariabelen. For eksempel, hvis state-variabelen er mail, vil den tilhørende setState-funksjonen vanligvis hete setMail.

Merk

Når vi kaller setState, re-renderer React komponenten og oppdaterer tilstanden med den nye verdien. Det er viktig å merke seg at når man bruker useState, trenger ikke tilstandsvariabelen å være et objekt. Den kan være en primitiv verdi (som et tall, en streng eller en boolean) eller en kompleks verdi (som et array eller objekt).

Eksempel 1:

Vi skal bygge Counter-komponenten, som vil håndtere sin egen tilstand. Når knappen Increment klikkes, oppdateres tilstanden og komponenten rendres på nytt.

import React, { useState } from "react";

const Counter = () => {
  const [count, setCount] = useState(0);

  const increment = () => {
    setCount(count + 1);
  };

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={increment}>Increment</button>
    </div>
  );
};

I dette eksempelet brukes useState-hooken til å deklarere en tilstandsvariabel count med startverdi 0. Funksjonen setCount brukes til å oppdatere variabelen count hver gang knappen klikkes.

Forklaring linje for linje:

  • Linje 1: Vi importerer useState-hooken fra React-biblioteket for å benytte dens funksjonalitet;
  • Linje 3: Vi definerer Counter-komponenten ved å bruke konvensjonell funksjonssyntaks;
  • Linje 4: Vi initialiserer tilstanden ved hjelp av useState-hooken;
  1. count representerer verdien til telleren. Startverdien er 0, spesifisert i parentesen til useState(0);
  2. setCount er funksjonen som oppdaterer tilstanden ved behov.
  • Linje 6-8: Denne JavaScript arrow-funksjonen håndterer logikken for å oppdatere tilstanden. Den kjøres når "increment"-knappen klikkes. Inne i funksjonen bruker vi setCount-funksjonen for å oppdatere tilstanden;
  • Linje 10-15: Gjengir komponentens markup. På linje 12 vises den nåværende tilstandsverdien (count). Knappen på linje 13 bruker attributtet onClick for å definere funksjonen som skal kjøres ved klikk. I dette tilfellet sender vi inn increment-funksjonen.

Full app-kode:

Eksempel 2:

Vi konstruerer Form-komponenten med sin egen uavhengige tilstand. Brukeren blir bedt om å skrive inn navnet sitt i input-feltet, og avhengig av hva som skrives inn, vil vi endre det viste innholdet.

import React, { useState } from "react";

const Form = () => {
  const [userName, setUserName] = useState("");

  const handleChange = (event) => {
    const inputValue = event.target.value;
    setUserName(inputValue);
  };

  return (
    <div>
      <input
        type="text"
        value={userName}
        onChange={handleChange}
        placeholder="Your name"
      />
      <p>Hello, {userName}!</p>
    </div>
  );
};

I dette eksempelet brukes useState-hooken til å deklarere en tilstandsvariabel userName med en initialverdi som en tom streng. Funksjonen setUserName oppdaterer variabelen userName når det er nødvendig.

Forklaring linje for linje:

  • Linje 1: Vi importerer useState-hooken fra React-biblioteket for å bruke funksjonaliteten;
  • Linje 3: Vi definerer Form-komponenten ved å bruke standard funksjonssyntaks;
  • Linje 4: Vi setter initial tilstand ved å bruke useState-hooken;
    1. userName representerer verdien til input-feltet, som i utgangspunktet er satt til en tom streng (""), spesifisert i parentesen til useState("");
  1. setUserName er funksjonen som lar oss oppdatere tilstanden ved behov.
  • Linje 6-9: Denne JavaScript arrow-funksjonen håndterer logikken for å oppdatere tilstanden. Den utløses når brukeren skriver noe i feltet. Vi henter input-verdien i funksjonen ved å bruke event.target.value. Deretter bruker vi setUserName-funksjonen for å oppdatere tilstanden med verdien fra input-feltet;
  • Linje 11-21: Komponentens markup blir gjengitt.
    1. På linje 15 setter vi userName som initialverdi for input ved å bruke value-attributtet;
    2. På linje 16 bruker vi onChange-attributtet for å spesifisere funksjonen som skal kalles når det skjer en endring i input.

Full app-kode:

1. Hvilket av følgende utsagn er sant om useState-hooken?

2. Hva er formålet med setState-funksjonen som returneres av useState-hooken?

3. Hvordan setter du initialverdien for tilstanden når du bruker useState-hooken?

question mark

Hvilket av følgende utsagn er sant om useState-hooken?

Select the correct answer

question mark

Hva er formålet med setState-funksjonen som returneres av useState-hooken?

Select the correct answer

question mark

Hvordan setter du initialverdien for tilstanden når du bruker useState-hooken?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2
some-alt