Verwaltung von Zustand mit useState
Swipe um das Menü anzuzeigen
Der useState-Hook ist ein grundlegender React-Hook, der es Funktionskomponenten ermöglicht, einen Zustand zu besitzen. Er bietet eine Möglichkeit, Zustandsvariablen innerhalb einer Komponente zu deklarieren und zu aktualisieren.
Syntax:
Um den useState-Hook zu verwenden, wird er aufgerufen und der Anfangszustand (initialState) als Argument übergeben. Er gibt ein Array mit zwei Elementen zurück: den aktuellen Zustandswert (state) und eine Funktion (setState), um den Zustand zu aktualisieren.
const [state, setState] = useState(initialState);
-
Für die Benennung der
state-Variable kann ein beliebiges Wort gewählt werden. Es wird empfohlen, einen Variablennamen zu verwenden, der genau beschreibt, welcher Zustand gespeichert oder aktualisiert wird, wie zum BeispielinputValue,page,number,nameusw.; -
Ebenso besteht bei der Verwendung der
setState-Funktion Flexibilität bei der Namenswahl. Es ist jedoch gängige Konvention, dass der Name dersetState-Funktion mit "set" beginnt, gefolgt vom Namen der zugehörigen Zustandsvariable. Wenn diestate-Variable beispielsweisemailheißt, würde die entsprechendesetState-Funktion typischerweisesetMailgenannt werden.
Wenn setState aufgerufen wird, rendert React die Komponente neu und aktualisiert den Zustand mit dem neuen Wert. Es ist wichtig zu beachten, dass bei der Verwendung von useState die Zustandsvariable kein Objekt sein muss. Sie kann einen primitiven Wert (wie eine Zahl, einen String oder einen Boolean) oder einen komplexen Wert (wie ein Array oder Objekt) enthalten.
Beispiel 1:
Erstellung der Counter-Komponente, die ihren eigenen Zustand verwaltet. Beim Klicken auf den Increment-Button wird der Zustand aktualisiert und die Komponente neu gerendert.
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>
);
};
In diesem Beispiel wird der useState-Hook verwendet, um eine Zustandsvariable count mit dem Anfangswert 0 zu deklarieren. Die Funktion setCount wird genutzt, um die Variable count zu aktualisieren, sobald der Button geklickt wird.
Erklärung Zeile für Zeile:
- Zeile 1: Import des
useState-Hooks aus der React-Bibliothek zur Nutzung der Funktionalität; - Zeile 3: Definition der
Counter-Komponente mit der üblichen Funktionssyntax; - Zeile 4: Initialisierung des Zustands mit dem
useState-Hook;
countrepräsentiert den Wert des Zählers. Der Anfangswert ist0, festgelegt in den Klammern vonuseState(0);setCountist die Funktion, die den Zustand bei Bedarf aktualisiert.
- Zeilen 6-8: Diese JavaScript-Arrow-Funktion übernimmt die Logik zur Aktualisierung des Zustands. Sie wird ausgeführt, wenn der "Increment"-Button geklickt wird. Innerhalb der Funktion wird die Funktion
setCountverwendet, um den Zustand zu aktualisieren; - Zeilen 10-15: Rendert das Markup der Komponente. In Zeile 12 wird der aktuelle Zustand (
count) angezeigt. Der Button in Zeile 13 verwendet dasonClick-Attribut, um die auszuführende Funktion beim Klicken festzulegen. In diesem Fall wird die Funktionincrementübergeben.
Beispiel 2:
Erstellung der Form-Komponente mit eigenem Zustand. Die Benutzerin oder der Benutzer wird aufgefordert, den Namen in das Eingabefeld einzugeben. Abhängig von der Eingabe wird der angezeigte Inhalt angepasst.
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>
);
};
In diesem Beispiel wird der useState-Hook verwendet, um eine Zustandsvariable userName mit dem Anfangswert eines leeren Strings zu deklarieren. Die Funktion setUserName aktualisiert die Variable userName, wann immer dies erforderlich ist.
Zeilenweise Erklärung:
- Zeile 1: Import des
useState-Hooks aus der React-Bibliothek zur Nutzung seiner Funktionalität; - Zeile 3: Definition der
Form-Komponente mit der Standard-Funktionssyntax; - Zeile 4: Festlegung des Anfangszustands mit dem
useState-Hook;
userNamesteht für den Wert des Eingabefelds und ist anfänglich als leerer String ("") gesetzt, wie in den Klammern vonuseState("")angegeben;setUserNameist die Funktion, mit der der Zustand bei Bedarf aktualisiert werden kann.
- Zeilen 6-9: Diese JavaScript-Arrow-Funktion übernimmt die Logik zur Aktualisierung des Zustands. Sie wird ausgelöst, wenn ein Benutzer etwas in das Feld eingibt. Der Eingabewert wird innerhalb der Funktion mit
event.target.valueabgerufen. Anschließend wird die FunktionsetUserNameverwendet, um den Zustand mit dem Wert aus dem Eingabefeld zu aktualisieren; - Zeilen 11-21: Das Markup der Komponente wird gerendert.
- In Zeile 15 wird
userNameals Anfangswert für das Eingabefeld über dasvalue-Attribut zugewiesen; - In Zeile 16 wird das
onChange-Attribut verwendet, um die Funktion anzugeben, die bei einer Änderung im Eingabefeld aufgerufen wird.
- In Zeile 15 wird
1. Welche der folgenden Aussagen trifft auf den useState-Hook zu?
2. Welchen Zweck hat die von dem setState-Hook zurückgegebene Funktion useState?
3. Wie legt man den Anfangswert des Zustands beim Einsatz des useState-Hooks fest?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen