React-Kompositionsmuster
Kompositionsmuster zum Erstellen flexibler, wartbarer React-Komponenten. Vermeiden Sie die Proliferation boolescher Props durch die Verwendung zusammengesetzter Komponenten, State-Lifting und das Zusammensetzen interner Strukturen. Diese Muster erleichtern die Arbeit mit Codebasen für Menschen und KI-Agenten gleichermaßen, wenn diese skalieren.
Wann anwenden
Beachten Sie diese Richtlinien bei:
- Refactoring von Komponenten mit vielen booleschen Props
- Aufbau wiederverwendbarer Komponentenbibliotheken
- Entwurf flexibler Komponenten-APIs
- Überprüfung der Komponentenarchitektur
- Arbeiten mit zusammengesetzten Komponenten oder Kontextanbietern
Regelkategorien nach Priorität
| Priorität | Kategorie | Auswirkung | Präfix |
|---|---|---|---|
| 1 | Komponentenarchitektur | HOCH | architecture- |
| 2 | State-Management | MITTEL | state- |
| 3 | Implementierungsmuster | MITTEL | patterns- |
| 4 | React 19 APIs | MITTEL | react19- |
Kurzreferenz
1. Komponentenarchitektur (HOCH)
architecture-avoid-boolean-props– Fügen Sie keine booleschen Props hinzu, um das Verhalten anzupassen; verwenden Sie Kompositionarchitecture-compound-components– Strukturieren Sie komplexe Komponenten mit gemeinsamem Kontext
2. State-Management (MITTEL)
state-decouple-implementation– Der Provider ist der einzige Ort, der weiß, wie der Zustand verwaltet wirdstate-context-interface– Definieren Sie eine generische Schnittstelle mit Zustand, Aktionen, Metadaten für Dependency Injectionstate-lift-state– Verschieben Sie Zustand in Provider-Komponenten für den Zugriff durch Geschwister
3. Implementierungsmuster (MITTEL)
patterns-explicit-variants– Erstellen Sie explizite Variantenkomponenten anstelle von booleschen Modipatterns-children-over-render-props– Verwenden Siechildrenfür die Komposition anstelle vonrenderX-Props
4. React 19 APIs (MITTEL)
⚠️ Nur React 19+. Überspringen Sie diesen Abschnitt bei Verwendung von React 18 oder älter.
react19-no-forwardref– Verwenden Sie nichtforwardRef; verwenden Sieuse()anstelle vonuseContext()
Verwendung
Lesen Sie die einzelnen Regeldateien für detaillierte Erklärungen und Codebeispiele:
rules/architecture-avoid-boolean-props.md
rules/state-context-interface.md
Jede Regeldatei enthält:
- Kurze Erklärung, warum es wichtig ist
- Falsches Codebeispiel mit Erklärung
- Richtiges Codebeispiel mit Erklärung
- Zusätzlicher Kontext und Verweise
Vollständig kompiliertes Dokument
Für die vollständige Anleitung mit allen Regeln: AGENTS.md