Langsame Re-Renders in React diagnostizieren und beheben
Finde heraus, warum eine React-Komponente langsam ist, miss mit dem Profiler und setze passende Fixes um (State-Platzierung, memo, Virtualisierung, Transitions) mit Code vorher und nachher. Entwickelt für ChatGPT, Claude, Gemini und Microsoft Copilot. Er enthält 4 anpassbare Variablen und lässt sich kostenlos mit einem Klick kopieren.
Experte · Code · Redaktionelle Prüfung ausstehend
Prompt
Arbeite als React-Performance-Spezialist, der erst diagnostiziert und dann optimiert.
Kontext:
- Betroffener Code: {{code}}
- Beobachtetes Symptom: {{symptom}}
- Messdaten (falls vorhanden): {{messdaten}}
- React-Version: {{react_version}}
Wenn der Code nicht reicht, um zu sehen, woher Props oder State kommen, frag nach den Elternkomponenten oder dem Context, bevor du Änderungen vorschlägst.
Liefere:
1. Hypothesen, nach Wahrscheinlichkeit sortiert, für die überflüssigen Re-Renders oder die Mehrarbeit (State zu weit oben, Context-Wert, der sich bei jedem Render ändert, neue Objekte oder Funktionen pro Render, lange Listen ohne Virtualisierung, teure Berechnungen im Render, instabile Keys).
2. Wie sich jede Hypothese mit dem React-DevTools-Profiler bestätigen lässt (was aufzeichnen, worauf im Flamegraph und bei „Warum wurde gerendert“ achten) und, wo sinnvoll, mit dem Performance-Panel des Browsers.
3. Die Fixes, von einfach bis komplex: State nach unten verschieben, Inhalte als children übergeben, Context aufteilen, useMemo/useCallback/memo nur, wo die Messung es rechtfertigt, useDeferredValue oder useTransition für Texteingaben, Listen virtualisieren.
4. Code vorher und nachher für jede umgesetzte Änderung mit erwarteter Wirkung.
5. Wie die Verbesserung mit derselben Messung geprüft wird und welche Schwelle als ausreichend gilt.
6. Was du vermeiden solltest: alles in memo packen, ohne Messung optimieren oder Lesbarkeit für Minigewinne opfern.
Vorgaben:
- Erfinde keine Zeiten oder prozentualen Verbesserungen; wenn ich keine Messungen habe, erkläre, wie ich sie bekomme, und lass [AUSFÜLLEN] stehen.
- Nutzt die Version den React Compiler, berücksichtige, dass er bereits automatisch memoisiert, und passe die Empfehlungen an.
- Das funktionale Verhalten bleibt identisch.
Format: Diagnose, Messplan, Änderungen mit Codeblöcken und eine abschließende Prüfliste.So verwenden Sie ihn
- Füge die langsame Komponente und ihre direkten Eltern ein. 2. Beschreibe das Symptom genau (welche Aktion, wie lange, auf welchem Gerät). 3. Zeichne eine Profiler-Sitzung auf, füge das Ergebnis ein und setze die Änderungen einzeln um, jeweils mit Messung.
Anwendungsbeispiel
Code: BestellTabelle.tsx mit 2000 Zeilen und Textfilter · Symptom: Tippen im Filter verzögert auf einem Mittelklasse-Laptop · Messdaten: keine · Version: React 18.
Beispielergebnis
Hypothesen (nach Wahrscheinlichkeit)
- Jeder Tastendruck filtert alle 2000 Zeilen und rendert sie im selben dringenden Render neu.
- Die Zeilen sind nicht memoisiert und erhalten bei jedem Render neue Objekte.
- Keine Virtualisierung: Das DOM enthält alle 2000 Zeilen.
Zuerst messen
In React DevTools → Profiler aufzeichnen, während Sie 5 Buchstaben tippen. Achten Sie auf lange Commits in BestellTabelle und aktivieren Sie „Record why each component rendered". Commit-Dauer vor der Änderung: [AUSFÜLLEN].
Änderung 1: Tippen und Filtern entkoppeln
import { memo, useDeferredValue, useMemo, useState } from 'react';
export function BestellTabelle({ bestellungen }: { bestellungen: Bestellung[] }) {
const [filter, setFilter] = useState('');
const verzoegerterFilter = useDeferredValue(filter);
const sichtbar = useMemo(
() => bestellungen.filter((b) => b.kunde.toLowerCase().includes(verzoegerterFilter.toLowerCase())), // [AUSFÜLLEN: echtes Feld]
[bestellungen, verzoegerterFilter],
);
return (
<>
<input value={filter} onChange={(e) => setFilter(e.target.value)} aria-label="Bestellungen filtern" />
<Zeilen bestellungen={sichtbar} />
</>
);
}
const Zeilen = memo(function Zeilen({ bestellungen }: { bestellungen: Bestellung[] }) {
return <table><tbody>{bestellungen.map((b) => <BestellZeile key={b.id} bestellung={b} />)}</tbody></table>;
});
Das Eingabefeld aktualisiert sofort, die Liste wird mit niedriger Priorität neu berechnet; memo verhindert, dass die Zeilen neu rendern, solange sich der verzögerte Wert nicht ändert. Ist es danach noch langsam, folgt Virtualisierung …
Wichtige Fakten
- Kategorie
- Programmierung & Entwicklung · React
- Ausgabetyp
- Code
- Niveau
- Experte
- Entwickelt für
- ChatGPT, Claude, Gemini und Microsoft Copilot
- Verifiziert in
- Redaktionelle Prüfung ausstehend
- Variablen
- Betroffener Code, Symptom, Messdaten und React-Version
- Sprache
- Deutsch
- Preis
- Kostenlos, ohne Anmeldung
- Aktualisiert
- 07.11.2026
Häufig gestellte Fragen
Sollte ich überall useMemo und useCallback einsetzen?
Nein. Beide kosten selbst etwas und machen den Code schwerer lesbar. Setze sie ein, wenn der Profiler zeigt, dass eine bestimmte Berechnung oder ein Re-Render teuer ist, oder wenn memo eine stabile Referenz braucht.
Wann muss ich eine Liste virtualisieren?
Wenn Hunderte oder Tausende komplexer Einträge gleichzeitig gerendert werden und Profiler oder Performance-Panel zeigen, dass das Mounten dieser Knoten die Kosten verursacht. Kurze Listen brauchen das selten.
Wofür ist dieser Prompt gedacht?
Finde heraus, warum eine React-Komponente langsam ist, miss mit dem Profiler und setze passende Fixes um (State-Platzierung, memo, Virtualisierung, Transitions) mit Code vorher und nachher.
Mit welchen KI-Tools funktioniert er?
Er ist für ChatGPT, Claude, Gemini und Microsoft Copilot entwickelt. Wir haben ihn in diesen Tools noch nicht überprüft, daher können die Ergebnisse variieren.
Wie passe ich den Prompt an?
Klicken Sie auf „Anpassen“ und füllen Sie die Variablen aus (Betroffener Code, Symptom, Messdaten und React-Version). Der Text wird sofort aktualisiert und lässt sich anschließend mit einem Klick kopieren. Die Werte werden nur in Ihrem Browser gespeichert.
Brauche ich Erfahrung, um ihn zu verwenden?
Er ist für Experten: Er richtet sich an Personen mit Erfahrung im Thema, die das Ergebnis beurteilen und anpassen können.
Ist dieser Prompt kostenlos?
Ja. Jeder Prompt von HomeCasa Prompts ist kostenlos, ohne Anmeldung und ohne Abonnement. Sie können ihn auch in beruflichen Projekten verwenden.
Kann ich der KI-Ausgabe vertrauen?
Betrachten Sie sie als hochwertigen Entwurf: Prüfen Sie Daten, Zahlen und wichtige Aussagen immer, bevor Sie etwas veröffentlichen oder Entscheidungen treffen.