📚
Lerndokumentationen
Web
Web
  • Willkommen
  • HTML
    • Was ist HTML?
    • Elemente
    • Attribute
    • Boilerplate
  • Textelemente
  • Links
  • Dokumentenstruktur
  • Medien
  • Tabellen
  • Formulare
  • CSS
    • Was ist CSS?
    • Syntax
  • Einheiten
  • Selektoren
  • Boxmodell
  • Hintergründe und Rahmen
  • Overflow
  • Bilder
  • Formulare
  • Textelemente
  • Layout
    • Flexbox
    • Grid
  • Responsive Design
  • JavaScript
    • Was ist JavaScript?
    • Einbindung in HTML
    • Grundlagen
      • Variablen und Werte
      • Datentypen
      • Operatoren und Ausdrücke
      • Kontrollstrukturen
      • Schleifen
    • Funktionen
      • Funktionsdeklarationen vs. Funktionsausdrücke
      • Arrow Functions
      • Standardparameter und Rest-Parameter
      • First-Class und Higher-Order-Funktionen
      • Closures
      • IIFE (Immediately Invoked Function Expressions)
    • Arrays
      • Erstellen und Modifizieren
      • Iteration über Arrays
      • Sortieren
      • Nützliche Methoden
    • Objekte und Datenstrukturen
      • Erstellen und Manipulieren
      • Destructuring
      • Sets und Maps
    • Strings
      • Template Literals
      • Methoden
    • Moderne JavaScript-Features
      • Optionale Verkettung
      • Nullish Coalescing Operator
      • Spread und Rest Operator
      • Kurzschlussausdrücke
    • Scope und Kontext
      • this Keyword
      • Call, Apply und Bind
      • Hoisting und Temporal Dead Zone (TDZ)
    • Objektorientierte Programmierung
      • Prototypes
      • Constructor Functions
      • ES6 Classes
      • Die create()-Methode
    • Asynchronous JavaScript
      • AJAX
      • Promises
    • Zahlen, Daten, Internationalisierung und Timer
      • Mathematische Operationen
      • Datum und Zeit
      • Internationalisierung
      • Timer
    • Modules
    • JavaScript im Browser (DOM und Events)
      • Das DOM
      • Elemente auswählen, erstellen und manipulieren
      • Styles, Attribute und Klassen
      • Events und Event Listener
      • Event Propagation
        • Event Delegation
      • DOM Traversing
    • JavaScript Engine und Performance
      • Execution Context und Call Stack
  • TypeScript
    • Was ist TypeScript?
  • Compiler und Runtimes
  • Konfiguration
  • Types
    • Primitive Typen und Typableitung
    • Arrays und Tupel
    • Objekte
    • Top- und Bottom-Types
    • Enums
    • Utility Types
      • Records
  • Typenkombination
    • Union Types
    • Discriminated Unions
    • Intersections
  • Funktionen
  • Klassen
    • Grundlagen
    • Feldinitialisierer
    • Schreibgeschützte Felder
    • Implementieren
    • Private und Geschützte Member
    • Getter und Setter
    • Statische Member
    • Abstrakte Klassen und Member
  • Modules
    • Importieren und Exportieren
    • Ambient Types
    • Namespaces
    • Globals
  • React
    • Was ist React?
    • JSX
    • Komponenten
      • Root-Komponente
      • Styling
      • Listen
      • Conditional Rendering
      • Fragments
    • Props
      • Destructuring
      • Children
    • Interaktivität
      • Event Handling
      • State
      • Formulare
    • State Management
      • State anheben
      • Derived State
    • Komposition und Reusability
      • Komponentenstrukturierung
      • Prop Drilling
      • Komposition
Bereitgestellt von GitBook
Auf dieser Seite
  • Was ist State?
  • State-Variable erstellen
  • Hooks
  • Aufbau von useState
  1. React
  2. Interaktivität

State

VorherigeEvent HandlingNächsteFormulare

Zuletzt aktualisiert vor 1 Monat

Was ist State?

  • Daten, die eine Komponente im Laufe der Zeit speichern kann; notwendige Informationen, die sie sich während des Lebenszyklus der App merken muss

  • Das Gedächtnis einer Komponente 🧠

  • Component-State: Eine einzelne Variable in einer Komponente (auch "State-Variable")

  • Manipulation von Component-State triggert React, die Komponente neu zu rendern

State erlaubt es uns also:

  1. Die View der Komponente zu aktualisieren (durch das erneute Rendern)

  2. Lokale Variablen zwischen Renders zu persistieren

State-Variable erstellen

Um eine State-Variable hinzuzufügen, müssen wir useState von React importieren und dann den useState-Hook nutzen.

const [step, setStep] = useState(1);

step ist eine State-Variable, während setState die Setter-Funktion ist.

Die [ und ] Syntax wird hier als bezeichnet und ermöglicht das Lesen von Werten aus einem Array. Das von useState zurückgegebene Array hat immer genau zwei Elemente.

const App = () => {
  const [step, setStep] = useState(1);

  const handleNext = () => {
    if (step < 3) setStep((step) => step + 1);
  };

  const handlePrevious = () => {
    if (step > 1) setStep((step) => step + 1);
  };

  return (
    <div className="steps">
      <div className="numbers">
        <div className={`${step >= 1 ? 'active' : ''}`}>1</div>
        <div className={`${step >= 2 ? 'active' : ''}`}>2</div>
        <div className={`${step >= 3 ? 'active' : ''}`}>3</div>
      </div>

      <p className="message">
        Step {step}: {messages[step - 1]}
      </p>

      <div className="buttons">
        <button
          onClick={handlePrevious}
          style={{ backgroundColor: '#7950f2', color: '#ffffff' }}
        >
          Previous
        </button>
        <button
          onClick={handleNext}
          style={{ backgroundColor: '#7950f2', color: '#ffffff' }}
        >
          Next
        </button>
      </div>
    </div>
  );
};

export default App;

Hooks

In React, useState, und andere Funktionen, die mit "use" starten, werden Hook genannt.

State ist nur eine dieser Features, wir werden noch viele weiter Hooks kennenlernen.

Hooks - Funktionen, die mit use starten - können nur auf oberster Ebene der Komponente aufgerufen werden. Hooks können nicht in Konditionen, Loops oder verschachtelten Funktionen aufgerufen werden.

Aufbau von useState

const [index, setIndex] = useState(0);

In diesem Fall möchtest du, dass React sich index merkt.

Die Konvention für die Namen, der State-Variable und des Setters sind const [something, setSomething]

Das einzige Argument, welches du useState mitgeben musst, ist der Initialwert deiner State-Variable. In diesem Beispiel ist index's Initialwert 0.


Jedes Mal, wenn unsere Komponente gerendert wird, gibt unsuseState einen Arrays mit zwei Werten:

  1. Die State-Variable (index) mit dem Wert, der gespeichert ist.

  2. Die State-Setter-Funktion (setIndex) wleche die State-Variable aktualisieren kann und React triggert, die Komponente erneut zu rendern.

Hier siehst du, wie das in Aktion passiert:

const [index, setIndex] = useState(0);
  1. Deine Komponente wird zum ersten Mal gerendert. Weil du 0 an useState übergeben hast, gibt es uns [0, setIndex] zurück. React merkt sich 0 als letzten Wert.

  2. Du aktualisierst den State. Wenn ein User auf einen Button klickt ruft er setIndex(index + 1) auf. index ist 0, also ist es setIndex(1). Das sagt React, dass index jetzt 1 ist und triggert einen re-render.

  3. Das zweite Rendern deiner Komponente. React sieht immer noch useState(0), aber da React sich erinnert, dass du index zu 1 gesetzt hast, gibt es uns [1, setIndex] zurück.

  4. Und so weiter

Hooks sind spezielle Funktionen, die nur verfügbar sind, während React am ist. Sie lassen uns in verschiedene React Features "einhaken".

Wenn du aufrufst, sagst du React, dass diese Komponente sich etwas merken soll:

Array-Destructuring
Rendern
useState