Heim > Web-Frontend > js-Tutorial > Hauptteil

useState ist nicht immer die richtige Antwort❌

WBOY
Freigeben: 2024-07-19 15:37:20
Original
1098 Leute haben es durchsucht

In React haben wir zwei Möglichkeiten, den Zustand der Komponente zu verwalten – useState ist nicht immer die richtige Antwort❌ und useReducer. Der zweite ist weniger beliebt, da er für komplexere Objekte im Staat gedacht ist und auf den ersten Blick für neue Programmierer ehrlich gesagt zu knifflig aussieht, aber das ist nicht der Fall.

UseState sieht jedoch sehr einfach und verständlich aus, sodass neue Programmierer es oft häufiger als erforderlich verwenden.

useState ist nicht immer die richtige Antwort❌

Abhängig von Benutzerinteraktionen soll der Status zum Neuzeichnen von Komponenten verwaltet werden. Wenn Sie sich an etwas erinnern möchten, ohne es wiederzugeben, sollten Sie es wahrscheinlich nicht in den Status versetzen. useRef wäre die beste Option.

Sie benötigen useState ist nicht immer die richtige Antwort❌ nicht, wenn:

Sie möchten sich einige Werte beim erneuten Rendern merken, ohne sie dem Benutzer anzuzeigen. Sie haben bereits Daten im Staat oder Sie erhalten sie über Requisiten, müssen sie aber transformieren; Sie müssen diesen neuen Wert nicht im neuen useState ist nicht immer die richtige Antwort❌-Objekt behalten, eine neue Variable erstellen und damit arbeiten, ohne nutzlose erneute Renderings auszulösen.

Sie müssen den Wert in einem Zustand halten, wenn:

Sie möchten die Komponente neu zeichnen, wenn sich der Wert ändert; Die beliebtesten Beispiele sind das Ein-/Ausblenden von Panels, Spinnern, Fehlermeldungen und das Ändern von Arrays.

Vereinfachen Sie Ihren Code folgendermaßen:
import React, { useState ist nicht immer die richtige Antwort❌, useEffect } from 'react';

const MyComponent = (props) => {
  const [name, setName] = useState ist nicht immer die richtige Antwort❌('name');
  const { description, index } = props;
  const [fullName, setFullName] = useState ist nicht immer die richtige Antwort❌('');

  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;
Nach dem Login kopieren

Dieses Code-Snippet definiert eine React-Komponente, die Namens- und FullName-Zustände initialisiert und den useEffect-Hook verwendet, um FullName zu aktualisieren, wenn sich Name oder Beschreibung ändern. Es enthält auch ein Eingabefeld zum Aktualisieren des Namensstatus und zeigt den vollständigen Namen und die Beschreibung an.

Dieser Ansatz führt zu nutzlosen erneuten Renderings und unnötiger Verwendung von
useEffect.Wenn sich der Name oder die Beschreibung ändert und React die Komponente neu rendert, prüft React, ob eine Funktionalität vorhanden ist, die von diesen Werten abhängt. useEffect wird ausgelöst, wenn sich der Name oder die Beschreibung ändert, wodurch ein neues Re-Rendering erstellt wird.

Dazu
import React, { useState ist nicht immer die richtige Antwort❌ } from 'react';

const MyComponent = (props) => {
  const [name, setName] = useState ist nicht immer die richtige Antwort❌('');
  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;
Nach dem Login kopieren

In diesem Codeausschnitt wird nameWithDescription direkt aus Name und Beschreibung berechnet, ohne dass useEffect erforderlich ist. Der Namensstatus wird mit einer leeren Zeichenfolge initialisiert. Die nameWithDescription wird automatisch aktualisiert, wenn sich Name oder Beschreibung aufgrund des Re-Rendering-Mechanismus von React ändern.

Wir können das Standardverhalten von React verwenden und den richtigen Wert erhalten, wenn der Name oder die Beschreibungen geändert werden, ohne ein weiteres erneutes Rendern auszulösen.

Das obige ist der detaillierte Inhalt vonuseState ist nicht immer die richtige Antwort❌. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!