Was macht React Best Practices?
Umfassender Leitfaden zur Leistungsoptimierung von React-Anwendungen. Enthält 37 Regeln in 7 Kategorien, priorisiert nach Auswirkung.
Regelkategorien nach Priorität
| Priorität | Kategorie | Auswirkung | Präfix |
|---|---|---|---|
| 1 | Wasserfälle vermeiden | KRITISCH | async- |
| 2 | Bundle-Größe optimieren | KRITISCH | bundle- |
| 3 | Clientseitiges Datenabrufen | MITTEL-HOCH | client- |
| 4 | Re-Rendering optimieren | MITTEL | rerender- |
| 5 | Rendering-Leistung | MITTEL | rendering- |
| 6 | JavaScript-Leistung | NIEDRIG-MITTEL | js- |
| 7 | Fortgeschrittene Muster | NIEDRIG | advanced- |
Kurzreferenz
1. Wasserfälle vermeiden (KRITISCH)
async-defer-await– await in die Zweige verschieben, wo es tatsächlich verwendet wirdasync-parallel– Promise.all()/allSettled() für unabhängige Operationen verwenden
2. Bundle-Größe optimieren (KRITISCH)
bundle-dynamic-imports– React.lazy() für schwere Komponentenbundle-defer-third-party– Analyse/Logging bei Bedarf ladenbundle-conditional– Module nur laden, wenn die Funktion aktiviert istbundle-preload– Bei Hover/Fokus vorladen für gefühlte Geschwindigkeit
3. Clientseitiges Datenabrufen (MITTEL-HOCH)
client-query-dedup– TanStack Query für automatische Anforderungsdeduplizierung verwendenclient-event-listeners– Globale Event-Listener deduplizierenclient-passive-event-listeners– Passive Listener für Scroll-Leistung verwendenclient-localstorage-schema– localStorage-Daten versionieren und minimieren
4. Re-Rendering optimieren (MITTEL)
rerender-defer-reads– Nicht auf Zustand abonnieren, der nur in Callbacks verwendet wirdrerender-memo– Teure Arbeit in memoierte Komponenten auslagernrerender-dependencies– Primitive Abhängigkeiten in Effekten verwendenrerender-derived-state– Auf abgeleitete boolesche Werte abonnieren, nicht auf Rohwertererender-functional-setstate– Funktionelles setState für stabile Callbacks verwendenrerender-lazy-state-init– Funktion an useState übergeben für teure Wertererender-transitions– startTransition für nicht dringende Aktualisierungen verwenden
5. Rendering-Leistung (MITTEL)
rendering-animate-svg-wrapper– Div-Wrapper animieren, nicht das SVG-Elementrendering-content-visibility– content-visibility für lange Listen verwendenrendering-hoist-jsx– Statisches JSX außerhalb von Komponenten extrahierenrendering-svg-precision– SVG-Koordinatenpräzision reduzierenrendering-activity– Activity-Komponente für Ein-/Ausblenden verwendenrendering-conditional-render– Ternary verwenden, nicht &&, für Bedingungen
6. JavaScript-Leistung (NIEDRIG-MITTEL)
js-batch-dom-css– CSS-Änderungen über Klassen oder cssText gruppierenjs-index-maps– Map für wiederholte Suchvorgänge erstellenjs-cache-property-access– Objekteigenschaften in Schleifen cachenjs-cache-function-results– Funktionsergebnisse in module-level Map cachenjs-cache-storage– Lesezugriffe auf localStorage/sessionStorage cachenjs-combine-iterations– Mehrere filter/map in einer Schleife kombinierenjs-length-check-first– Array-Länge vor teuren Vergleichen prüfenjs-early-exit– Frühzeitig aus Funktionen zurückkehrenjs-hoist-regexp– RegExp-Erstellung außerhalb von Schleifen hoistenjs-min-max-loop– Schleife für min/max verwenden, statt sortjs-set-map-lookups– Set/Map für O(1)-Suche verwendenjs-tosorted-immutable– toSorted() für Unveränderlichkeit verwenden
7. Fortgeschrittene Muster (NIEDRIG)
advanced-event-handler-refs– Event-Handler in refs speichernadvanced-use-latest– useLatest für stabile Callback-Referenzen
Verwendung
Jede Regeldatei in references/ enthält: Erklärung, fehlerhafte/korrekte Codebeispiele und Kontext. Lesen Sie einzelne Dateien nach Bedarf.