Sobes.tech
Junior

Was ist der Unterschied zwischen Props und State in React?

sobes.tech KI

Antwort von AI

Props (Eigenschaften) und Zustand (State) sind zwei zentrale Mechanismen zur Datenverwaltung in React-Komponenten.

Props:

  • Werden vom Eltern- zum Kind-Komponenten übergeben.
  • Sind innerhalb des Kind-Komponenten unveränderlich (immutable).
  • Ermöglichen die Interaktion zwischen Komponenten.
  • Bestimmen das Aussehen oder Verhalten des Komponenten basierend auf Eingabedaten.

Zustand:

  • Gehört zu einer bestimmten Komponente und wird von ihr verwaltet.
  • Ist innerhalb der Komponente veränderbar (mutable).
  • Repräsentiert Daten, die sich im Laufe der Zeit ändern können und das Rendering beeinflussen.
  • Eine Änderung des Zustands löst eine Neudarstellung (Re-Render) des Komponenten und seiner Nachkommen aus.

Die wichtigsten Unterschiede können in einer Tabelle dargestellt werden:

Merkmal Props Zustand
Quelle Elternkomponente Die Komponente selbst
Änderbarkeit Unveränderlich (immutable) Änderbar (mutable)
Verwaltung Wird von außen übergeben Wird innerhalb der Komponente verwaltet
Zweck Anzeige externer Daten, Konfiguration Verwaltung des internen Zustands
Änderung führt zu Neudarstellung bei Änderung im Elternteil Neudarstellung bei Änderung in der Komponente

Beispiel für die Verwendung von Props:

// ParentComponent.jsx
import React from 'react';
import ChildComponent from './ChildComponent';

function ParentComponent() {
  const message = "Hallo vom Elternteil!";
  return (
    <div>
      <ChildComponent text={message} /> {/* Prop "text" wird übergeben */}
    </div>
  );
}

export default ParentComponent;
// ChildComponent.jsx
import React from 'react';

function ChildComponent(props) {
  return (
    <p>{props.text}</p> {/* Verwendung der Prop "text" */}
  );
}

export default ChildComponent;

Beispiel für die Verwendung von Zustand:

// Counter.jsx
import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0); // Initialisierung des Zustands "count"

  const increment = () => {
    setCount(count + 1); // Änderung des Zustands
  };

  return (
    <div>
      <p>Zähler: {count}</p>
      <button onClick={increment}>Erhöhen</button>
    </div>
  );
}

export default Counter;