Dans React, nous avons deux façons de gérer l'état du composant : useState nest pas toujours la bonne réponse❌ et useReducer. La seconde est moins populaire car elle est destinée aux objets plus complexes de l'état et semble honnêtement trop délicate à première vue pour les nouveaux programmeurs, mais ce n'est pas le cas.
Cependant, useState nest pas toujours la bonne réponse❌ semble très simple et compréhensible, c'est pourquoi les nouveaux programmeurs l'utilisent souvent plus que nécessaire.
En fonction des interactions de l'utilisateur, il est destiné à gérer l'état de redessin des composants. Si vous souhaitez mémoriser quelque chose sans le restituer, vous ne devriez probablement pas le mettre dans cet état. useRef serait la meilleure option.
Vous souhaitez mémoriser certaines valeurs lors des nouveaux rendus sans les montrer à l'utilisateur. Vous avez déjà des données dans l'état, ou vous les recevez via des accessoires mais devez les transformer ; vous n'avez pas besoin de conserver cette nouvelle valeur dans le nouvel objet useState nest pas toujours la bonne réponse❌, de créer une nouvelle variable et d'opérer avec elle sans déclencher de nouveaux rendus inutiles.
Vous souhaitez redessiner le composant lorsque la valeur change ; les exemples les plus populaires sont l'affichage/le masquage de panneaux, les compteurs, les messages d'erreur et la modification de tableaux.
import React, { useState nest pas toujours la bonne réponse❌, useEffect } from 'react'; const MyComponent = (props) => { const [name, setName] = useState nest pas toujours la bonne réponse❌('name'); const { description, index } = props; const [fullName, setFullName] = useState nest pas toujours la bonne réponse❌(''); useEffect(() => { setFullName(`${name} - ${description}`); }, [name, description]); return ( <div> <h1>{fullName}</h1> <input type="text" value="{name}" onchange="{(e)"> setName(e.target.value)} placeholder="Enter name" /> <p>{description}</p> </div> ); }; export default MyComponent;
Cet extrait de code définit un composant React qui initialise les états name et fullName, et utilise le hook useEffect pour mettre à jour fullName chaque fois que le nom ou la description change. Il comprend également un champ de saisie pour mettre à jour l'état du nom et affiche le nom complet et la description.
Cette approche vous donne des rendus inutiles et une utilisation inutile de
useEffect.Lorsque le nom ou la description change et que React restitue le composant, React vérifiera s'il existe des fonctionnalités qui dépendent de ces valeurs. useEffect sera déclenché lorsque le nom ou la description change, créant un nouveau rendu.
import React, { useState nest pas toujours la bonne réponse❌ } from 'react'; const MyComponent = (props) => { const [name, setName] = useState nest pas toujours la bonne réponse❌(''); const { description, index } = props; const nameWithDescription = `${name} - ${description}`; return ( <div> <h1>{nameWithDescription}</h1> <input type="text" value="{name}" onchange="{(e)"> setName(e.target.value)} placeholder="Enter name" /> <p>{description}</p> </div> ); }; export default MyComponent;
Dans cet extrait de code, nameWithDescription est calculé directement à partir du nom et de la description sans avoir besoin de useEffect. L'état du nom est initialisé avec une chaîne vide. Le nameWithDescription est mis à jour automatiquement chaque fois que le nom ou la description change en raison du mécanisme de re-rendu de React.
nous pouvons utiliser le comportement par défaut de React et obtenir la valeur correcte lorsque le nom ou les descriptions sont modifiés sans déclencher un nouveau rendu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!