Gestion de l'État avec useState
Glissez pour afficher le menu
Le hook useState est un hook fondamental de React qui permet aux composants fonctionnels de disposer d’un état. Il offre un moyen de déclarer et de mettre à jour des variables d’état au sein d’un composant.
Syntaxe :
Pour utiliser le hook useState, il suffit de l’appeler et de lui passer l’état initial (initialState) en argument. Il retourne un tableau contenant deux éléments : la valeur actuelle de l’état (state) et une fonction (setState) permettant de mettre à jour cet état.
const [state, setState] = useState(initialState);
-
Il est possible de choisir n’importe quel nom pour la variable
state. Il est recommandé d’utiliser un nom de variable qui décrit précisément l’état stocké ou mis à jour, commeinputValue,page,number,name, etc. ; -
De même, lors de l’utilisation de la fonction
setState, le choix du nom de la fonction est flexible. Cependant, il est d’usage de suivre une convention : le nom de la fonctionsetStatedoit commencer par "set" suivi du nom de la variablestatecorrespondante. Par exemple, si la variablemailestsetState, la fonction associée sera généralement nomméesetMail.
Lorsque l’on appelle setState, React réaffiche le composant et met à jour l’état avec la nouvelle valeur. Il est important de noter qu’avec useState, la variable d’état n’a pas besoin d’être un objet. Elle peut être une valeur primitive (comme un nombre, une chaîne de caractères ou un booléen) ou une valeur complexe (comme un tableau ou un objet).
Exemple 1 :
Création du composant Counter, qui maintient son propre état. Lorsque le bouton Increment est cliqué, l'état est mis à jour et le composant est re-rendu.
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>
);
};
Dans cet exemple, le hook useState est utilisé pour déclarer une variable d'état count avec une valeur initiale de 0. La fonction setCount permet de mettre à jour la variable count à chaque clic sur le bouton.
Explication ligne par ligne :
- Ligne 1 : Importation du hook
useStatedepuis la bibliothèque React pour utiliser sa fonctionnalité ; - Ligne 3 : Définition du composant
Counteren utilisant la syntaxe fonctionnelle conventionnelle ; - Ligne 4 : Initialisation de l'état avec le hook
useState;
countreprésente la valeur du compteur. Sa valeur initiale est0, spécifiée dans les parenthèses deuseState(0);setCountest la fonction qui permet de mettre à jour l'état si nécessaire.
- Lignes 6-8 : Cette fonction fléchée JavaScript gère la logique de mise à jour de l'état. Elle est exécutée lorsque le bouton "increment" est cliqué. À l'intérieur de la fonction, la fonction
setCountest utilisée pour mettre à jour l'état ; - Lignes 10-15 : Affichage du balisage du composant. À la ligne 12, la valeur actuelle de l'état (
count) est affichée. Le bouton à la ligne 13 utilise l'attributonClickpour définir la fonction à exécuter lors du clic. Dans ce cas, la fonctionincrementest passée.
Code complet de l'application :
Exemple 2 :
Construisons le composant Form avec son état indépendant. Nous demandons à l'utilisateur de saisir son nom dans le champ de saisie, et selon sa saisie, nous modifierons le contenu affiché.
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>
);
};
Dans cet exemple, le hook useState est utilisé pour déclarer une variable d'état userName avec une valeur initiale de chaîne vide. La fonction setUserName met à jour la variable userName chaque fois que cela est nécessaire.
Explication ligne par ligne :
- Ligne 1 : Importation du hook
useStatedepuis la bibliothèque React pour utiliser sa fonctionnalité ; - Ligne 3 : Définition du composant
Formen utilisant la syntaxe standard de fonction ; - Ligne 4 : Initialisation de l'état avec le hook
useState;
userNamereprésente la valeur du champ de saisie, initialement définie comme une chaîne vide (""), spécifiée dans les parenthèses deuseState("");setUserNameest la fonction qui permet de mettre à jour l'état lorsque cela est nécessaire.
- Lignes 6-9 : Cette fonction fléchée JavaScript gère la logique de mise à jour de l'état. Elle est déclenchée lorsqu'un utilisateur saisit quelque chose dans le champ. Nous récupérons la valeur saisie dans la fonction à l'aide de
event.target.value. Nous utilisons ensuite la fonctionsetUserNamepour mettre à jour l'état avec la valeur du champ de saisie ; - Lignes 11-21 : Le balisage du composant est rendu.
- À la ligne 15, nous attribuons
userNamecomme valeur initiale pour le champ de saisie via l'attributvalue; - À la ligne 16, nous utilisons l'attribut
onChangepour spécifier la fonction à appeler lorsqu'il y a une modification dans le champ de saisie.
Code complet de l'application :
1. Laquelle des affirmations suivantes est vraie à propos du hook useState ?
2. Quel est le but de la fonction setState retournée par le hook useState ?
3. Comment définir la valeur initiale de l’état lors de l’utilisation du hook useState ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion