Hantering av Tillstånd med useState
Hooken useState är en grundläggande React-hook som gör det möjligt för funktionella komponenter att ha ett tillstånd. Den tillhandahåller ett sätt att deklarera och uppdatera tillståndsvariabler inom en komponent.
Syntax:
För att använda hooken useState anropas den och det initiala tillståndet (initialState) skickas som argument. Den returnerar en array med två element: det aktuella tillståndsvärdet (state) och en funktion (setState) för att uppdatera tillståndet.
const [state, setState] = useState(initialState);
-
Det går att välja valfritt namn för en
state-variabel. Det rekommenderas att använda ett variabelnamn som tydligt beskriver vilket tillstånd som lagras eller uppdateras, till exempelinputValue,page,number,nameoch så vidare; -
På samma sätt finns det flexibilitet i att välja funktionsnamn för
setState. Det är dock standard att följa ett specifikt mönster: namnet påsetState-funktionen bör börja med "set" följt av namnet på motsvarande tillståndsvariabel. Till exempel, omstate-variabeln ärmail, bör motsvarandesetState-funktion vanligtvis hetasetMail.
När vi anropar setState renderar React om komponenten och uppdaterar tillståndet med det nya värdet. Det är viktigt att notera att när useState används behöver tillståndsvariabeln inte vara ett objekt. Den kan vara ett primitivt värde (som ett nummer, en sträng eller en boolean) eller ett komplext värde (som en array eller ett objekt).
Exempel 1:
Vi bygger komponenten Counter, som kommer att hantera sitt eget tillstånd. När knappen Increment klickas uppdateras tillståndet och komponenten renderas om.
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 detta exempel används hooken useState för att deklarera en tillståndsvariabel count med initialvärdet 0. Funktionen setCount används för att uppdatera variabeln count varje gång knappen klickas.
Rad-för-rad-förklaring:
- Rad 1: Vi importerar hooken
useStatefrån React-biblioteket för att använda dess funktionalitet; - Rad 3: Vi definierar komponenten
Countermed konventionell funktionssyntax; - Rad 4: Vi initierar tillståndet med hooken
useState;
countrepresenterar värdet för räknaren. Dess initialvärde är0, vilket anges inom parentesen iuseState(0);setCountär funktionen som uppdaterar tillståndet vid behov.
- Raderna 6-8: Denna JavaScript arrow-funktion hanterar logiken för att uppdatera tillståndet. Den körs när knappen "increment" klickas. Inuti funktionen används
setCountför att uppdatera tillståndet; - Raderna 10-15: Renderar komponentens markup. På rad 12 visas det aktuella tillståndsvärdet (
count). Knappen på rad 13 använder attributetonClickför att definiera vilken funktion som ska köras vid klick. I detta fall skickas funktionenincrement.
Fullständig appkod:
Exempel 2:
Vi konstruerar Form-komponenten med dess oberoende tillstånd. Användaren uppmanas att ange sitt namn i inmatningsfältet, och beroende på deras inmatning kommer vi att ändra det visade innehållet.
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 detta exempel används hooken useState för att deklarera en tillståndsvariabel userName med ett initialvärde som är en tom sträng. Funktionen setUserName uppdaterar variabeln userName när vi behöver göra det.
Rad-för-rad-förklaring:
- Rad 1: Vi importerar hooken
useStatefrån React-biblioteket för att använda dess funktionalitet; - Rad 3: Vi definierar
Form-komponenten med standardfunktion-syntax; - Rad 4: Vi sätter initialt tillstånd med hooken
useState;
userNamerepresenterar värdet i inmatningsfältet, initialt satt till en tom sträng (""), specificerat inom parentesen föruseState("");setUserNameär funktionen som gör det möjligt att uppdatera tillståndet vid behov.
- Raderna 6-9: Denna JavaScript arrow-funktion hanterar logiken för att uppdatera tillståndet. Den triggas när en användare skriver något i fältet. Vi hämtar inmatningsvärdet i funktionen med
event.target.value. Vi använder sedan funktionensetUserNameför att uppdatera tillståndet med värdet från inmatningsfältet; - Raderna 11-21: Komponentens markup renderas.
- På rad 15 tilldelar vi
userNamesom initialvärde för inmatningen med attributetvalue; - På rad 16 använder vi attributet
onChangeför att ange vilken funktion som ska anropas vid ändring i inmatningen.
Komplett appkod:
1. Vilket av följande påståenden är sant om hooken useState?
2. Vad är syftet med funktionen setState som returneras av hooken useState?
3. Hur anger du det initiala tillståndsvärdet när du använder hooken useState?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Fantastiskt!
Completion betyg förbättrat till 4
Hantering av Tillstånd med useState
Svep för att visa menyn
Hooken useState är en grundläggande React-hook som gör det möjligt för funktionella komponenter att ha ett tillstånd. Den tillhandahåller ett sätt att deklarera och uppdatera tillståndsvariabler inom en komponent.
Syntax:
För att använda hooken useState anropas den och det initiala tillståndet (initialState) skickas som argument. Den returnerar en array med två element: det aktuella tillståndsvärdet (state) och en funktion (setState) för att uppdatera tillståndet.
const [state, setState] = useState(initialState);
-
Det går att välja valfritt namn för en
state-variabel. Det rekommenderas att använda ett variabelnamn som tydligt beskriver vilket tillstånd som lagras eller uppdateras, till exempelinputValue,page,number,nameoch så vidare; -
På samma sätt finns det flexibilitet i att välja funktionsnamn för
setState. Det är dock standard att följa ett specifikt mönster: namnet påsetState-funktionen bör börja med "set" följt av namnet på motsvarande tillståndsvariabel. Till exempel, omstate-variabeln ärmail, bör motsvarandesetState-funktion vanligtvis hetasetMail.
När vi anropar setState renderar React om komponenten och uppdaterar tillståndet med det nya värdet. Det är viktigt att notera att när useState används behöver tillståndsvariabeln inte vara ett objekt. Den kan vara ett primitivt värde (som ett nummer, en sträng eller en boolean) eller ett komplext värde (som en array eller ett objekt).
Exempel 1:
Vi bygger komponenten Counter, som kommer att hantera sitt eget tillstånd. När knappen Increment klickas uppdateras tillståndet och komponenten renderas om.
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 detta exempel används hooken useState för att deklarera en tillståndsvariabel count med initialvärdet 0. Funktionen setCount används för att uppdatera variabeln count varje gång knappen klickas.
Rad-för-rad-förklaring:
- Rad 1: Vi importerar hooken
useStatefrån React-biblioteket för att använda dess funktionalitet; - Rad 3: Vi definierar komponenten
Countermed konventionell funktionssyntax; - Rad 4: Vi initierar tillståndet med hooken
useState;
countrepresenterar värdet för räknaren. Dess initialvärde är0, vilket anges inom parentesen iuseState(0);setCountär funktionen som uppdaterar tillståndet vid behov.
- Raderna 6-8: Denna JavaScript arrow-funktion hanterar logiken för att uppdatera tillståndet. Den körs när knappen "increment" klickas. Inuti funktionen används
setCountför att uppdatera tillståndet; - Raderna 10-15: Renderar komponentens markup. På rad 12 visas det aktuella tillståndsvärdet (
count). Knappen på rad 13 använder attributetonClickför att definiera vilken funktion som ska köras vid klick. I detta fall skickas funktionenincrement.
Fullständig appkod:
Exempel 2:
Vi konstruerar Form-komponenten med dess oberoende tillstånd. Användaren uppmanas att ange sitt namn i inmatningsfältet, och beroende på deras inmatning kommer vi att ändra det visade innehållet.
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 detta exempel används hooken useState för att deklarera en tillståndsvariabel userName med ett initialvärde som är en tom sträng. Funktionen setUserName uppdaterar variabeln userName när vi behöver göra det.
Rad-för-rad-förklaring:
- Rad 1: Vi importerar hooken
useStatefrån React-biblioteket för att använda dess funktionalitet; - Rad 3: Vi definierar
Form-komponenten med standardfunktion-syntax; - Rad 4: Vi sätter initialt tillstånd med hooken
useState;
userNamerepresenterar värdet i inmatningsfältet, initialt satt till en tom sträng (""), specificerat inom parentesen föruseState("");setUserNameär funktionen som gör det möjligt att uppdatera tillståndet vid behov.
- Raderna 6-9: Denna JavaScript arrow-funktion hanterar logiken för att uppdatera tillståndet. Den triggas när en användare skriver något i fältet. Vi hämtar inmatningsvärdet i funktionen med
event.target.value. Vi använder sedan funktionensetUserNameför att uppdatera tillståndet med värdet från inmatningsfältet; - Raderna 11-21: Komponentens markup renderas.
- På rad 15 tilldelar vi
userNamesom initialvärde för inmatningen med attributetvalue; - På rad 16 använder vi attributet
onChangeför att ange vilken funktion som ska anropas vid ändring i inmatningen.
Komplett appkod:
1. Vilket av följande påståenden är sant om hooken useState?
2. Vad är syftet med funktionen setState som returneras av hooken useState?
3. Hur anger du det initiala tillståndsvärdet när du använder hooken useState?
Tack för dina kommentarer!