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 en lui passant 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 d’état
state. Il est recommandé d’utiliser un nom qui décrit précisément la donnée stockée ou modifiée, commeinputValue,page,number,name, etc. ; -
De même, pour la fonction
setState, le choix du nom est flexible. Cependant, il est d’usage de suivre une convention : le nom de la fonctionsetStatedoit commencer par "set" suivi du nom de la variable d’état correspondante. Par exemple, si la variable d’étatstateestmail, la fonctionsetStatecorrespondante serait 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 réaffiché.
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 met à jour l'état lorsque 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.
Exemple 2 :
Création du composant Form avec son état indépendant. L'utilisateur est invité à saisir son nom dans le champ de saisie, et selon son entrée, le contenu affiché sera modifié.
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 lorsque 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 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. La valeur saisie est récupérée dans la fonction via
event.target.value. On utilise ensuite la fonctionsetUserNamepour mettre à jour l’état avec la valeur du champ de saisie ; - Lignes 11-21 : Le balisage du composant est affiché.
- À la ligne 15, on assigne
userNamecomme valeur initiale de l’input via l’attributvalue; - À la ligne 16, on utilise l’attribut
onChangepour spécifier la fonction à appeler lors d’un changement dans le champ de saisie.
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