React Hooks sind eine neue (noch in der Entwicklung befindliche) Möglichkeit, auf die Kernfunktionen von React zuzugreifen, z. B. state
ohne Klassen verwenden zu müssen. In Ihrem Beispiel möchten Sie einen Zähler direkt in der Handler-Funktion erhöhen, ohne ihn direkt in der onClick
Requisite anzugeben könnte so etwas tun wie:
...
const [count, setCounter] = useState(0);
const [moreStuff, setMoreStuff] = useState(...);
...
const setCount = () => {
setCounter(count + 1);
setMoreStuff(...);
...
};
und onClick:
<button onClick={setCount}>
Click me
</button>
Lassen Sie uns kurz erklären, was in dieser Zeile vor sich geht:
const [count, setCounter] = useState(0);
useState(0)
Gibt ein Tupel zurück, bei dem der erste Parameter count
der aktuelle Status des Zählers ist und setCounter
die Methode ist, mit der wir den Status des Zählers aktualisieren können. Wir können die setCounter
Methode verwenden, um den Status von count
überall zu aktualisieren. In diesem Fall verwenden wir sie innerhalb der setCount
Funktion, in der wir mehr tun können. Die Idee mit Hooks ist, dass wir unseren Code funktionsfähiger halten und klassenbasierte Komponenten vermeiden können wenn dies nicht gewünscht / benötigt wird.
Ich schrieb einen kompletten Artikel über Haken mit mehreren Beispielen (einschließlich Zähler) wie diese codepen , benutzte ich useState
, useEffect
, useContext
und individuelle Haken . Ich könnte näher auf die Funktionsweise von Hooks bei dieser Antwort eingehen, aber die Dokumentation erklärt den Status-Hook sehr gut und andere Hooks im Detail. hoffe, es hilft.
Update: Hooks sind nicht länger ein Vorschlag , ab Version 16.8 sie jetzt verfügbar sind verwendet werden, gibt es einen Abschnitt in React Website , dass die Antworten einige der FAQ .
useState
die Implementierung erfolgt. Hier ist die Definition ab Version 16.9 .