Maison > interface Web > js tutoriel > useState n'est pas toujours la bonne réponse❌

useState n'est pas toujours la bonne réponse❌

WBOY
Libérer: 2024-07-19 15:37:20
original
1136 Les gens l'ont consulté

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.

useState nest pas toujours la bonne réponse❌

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 n'avez pas besoin de useState nest pas toujours la bonne réponse❌ si :

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 devez conserver la valeur dans un état si :

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.

Simplifiez votre code à partir de ceci :
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;
Copier après la connexion

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.

À ceci
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;
Copier après la connexion

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal