0Pricing
React Academy · Lektion

Wann imperative und deklarative APIs eingesetzt werden

Verstehen Sie die jeweiligen Kompromisse und entscheiden Sie, wann der Einsatz von Refs und imperativen Handles gerechtfertigt ist.

Wann imperative und deklarative APIs eingesetzt werden ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des React Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

React ist standardmäßig deklarativ

React fördert einen deklarativen Stil: Sie beschreiben, wie die Benutzeroberfläche für einen bestimmten Zustand aussehen soll, und React gleicht das DOM entsprechend ab. Das meiste Verhalten läuft über Props und Zustand statt über direkte DOM-Befehle.

Dieses Modell macht Benutzeroberflächen vorhersehbar, da die gerenderte Ausgabe eine reine Funktion des Zustands ist und nicht das Ergebnis einer Folge manueller Mutationen.

Wenn deklarativ nicht ausreicht

Manche Interaktionen lassen sich nicht rein deklarativ ausdrücken. Ein Element imperativ zu fokussieren, eine Animation zu einem exakt bestimmten Zeitpunkt auszulösen oder ein DOM-Widget eines Drittanbieters zu steuern, lässt sich oft nicht sauber als Funktion des Zustands darstellen.

Für solche Fälle bietet React Escape Hatches wie Refs und imperative Handles, die sparsam eingesetzt werden sollten, wenn deklarative Props nicht ausreichen.

Die Kosten imperativen Codes

Imperative APIs bringen Nachteile mit sich. Sie sind schwieriger zu testen, da Sie Methoden aufrufen und Seiteneffekte beobachten müssen. Außerdem können sie den unidirektionalen Datenfluss durchbrechen, der React-Apps leicht nachvollziehbar macht.

Imperative Aufrufe verteilen das Verhalten außerdem häufig über Event-Handler, statt es in einer klaren Abbildung von Zustand auf Benutzeroberfläche zu bündeln. Das erhöht den Wartungsaufwand.

Die Faustregel

Bevorzugen Sie deklarative APIs und greifen Sie nur für Interaktionen und Messungen auf imperative APIs zurück: Fokus, Scrollen, Animationen, Medienwiedergabe sowie das Auslesen von Größen oder Positionen.

Wenn sich etwas als Zustand modellieren lässt, der auf eine gerenderte Ausgabe abgebildet wird, tun Sie das. Handelt es sich dagegen um eine einmalige Aktion ohne saubere Zustandsdarstellung, ist ein imperatives Handle angemessen.

Deklaratives vs. imperatives Modal

Ein deklaratives Modal wird anhand einer isOpen-Prop gerendert, die von der übergeordneten Komponente verwaltet wird. Die Sichtbarkeit wird also durch den Zustand gesteuert. Ein imperatives Modal stellt die Methoden open und close bereit und verbirgt seinen eigenen Zustand hinter einem Handle.

Die deklarative Variante passt besser zum Datenfluss von React und wird normalerweise bevorzugt. Die imperative Variante kann jedoch praktisch sein, wenn das Auslösen aus verstreutem, ereignisgesteuertem Code erfolgen muss.

Formular zurücksetzen: key-Prop oder imperatives Zurücksetzen

Sie können ein Formular deklarativ zurücksetzen, indem Sie seine key-Prop ändern. Dadurch wird React gezwungen, es mit dem Standardzustand neu zu mounten. Ein imperativer Aufruf ist nicht erforderlich.

Die imperative Alternative stellt eine reset-Methode auf einem Handle bereit. Der Trick mit der key-Prop ist oft sauberer, weil er sich auf den React-Abgleich statt auf das manuelle Löschen von Zuständen stützt.

Router-Prefetching als imperatives Beispiel

Der Next.js-Router stellt imperative Methoden wie push, replace und prefetch bereit. Eine Route vor einer wahrscheinlichen Navigation vorab zu laden, ist eine Aktion und kein Teil des Renderzustands. Daher passt ein imperativer Aufruf hier natürlich.

Das zeigt, dass selbst idiomatische React-Werkzeuge imperative APIs verwenden, wenn es sich bei der Operation grundsätzlich um eine zu einem bestimmten Zeitpunkt ausgelöste Aktion handelt.

Refs sind Escape Hatches

Die offizielle Empfehlung versteht Refs und imperative Handles als Escape Hatches – als Werkzeuge, mit denen Sie das deklarative Modell verlassen, wenn dies wirklich notwendig ist. Sie sind nicht die Standardmethode, um Features zu entwickeln.

Diese Einstellung verhindert eine übermäßige Verwendung: Greifen Sie erst dann zu einer Escape Hatch, wenn Sie bestätigt haben, dass sich das Verhalten mit Props und Zustand nicht sauber ausdrücken lässt.

Eine Checkliste zum Zusammenfassen

Fragen Sie sich vor dem Hinzufügen eines imperativen Handles: Lässt sich das als Zustand modellieren, der auf eine Benutzeroberfläche abgebildet wird? Wenn ja, bleiben Sie deklarativ. Geht es um Fokus, Scrollen, eine Messung, eine Animation oder eine Aktion eines Drittanbieters? Dann kann eine imperative Lösung gerechtfertigt sein.

Stellen Sie außerdem sicher, dass die Oberfläche klein und dokumentiert ist und dass Sie keine Ref lediglich dazu verwenden, Daten zu übergeben, die auch eine Prop übertragen könnte.

Beide Stile ausbalancieren

Reale Anwendungen kombinieren beide Ansätze. Der weitaus größte Teil der Logik bleibt deklarativ, ergänzt durch eine dünne Schicht imperativer Handles für die wenigen Interaktionen, die sie benötigen.

Dieses Gleichgewicht hält Ihren Code vorhersehbar und testbar und ermöglicht Ihnen dennoch die Verwaltung von Fokus, Mediensteuerung und Bibliotheksintegrationen, wo deklarativer Code nicht ausreicht.

Schnelltest: Deklarativ vs. imperativ

Entscheiden Sie, wann eine imperative API das richtige Werkzeug ist.

Rückblick: Deklarativ vs. imperativ

React verwendet standardmäßig eine deklarative Benutzeroberfläche, die von Props und Zustand gesteuert wird und dadurch vorhersehbar und testbar ist. Imperative Handles dienen als Escape Hatches für Fokus, Scrollen, Animationen, Messungen und die Steuerung von DOM-Elementen von Drittanbietern.

Vergleichen Sie deklarative und imperative Modals, bevorzugen Sie die key-Prop zum Zurücksetzen von Formularen und denken Sie daran, dass auch der Next.js-Router imperative Methoden für Aktionen verwendet. Halten Sie die imperative Schicht klein, dokumentiert und gut begründet.

Häufig gestellte Fragen

Ist die Lektion „Wann imperative und deklarative APIs eingesetzt werden“ kostenlos?

Ja — der vollständige Text von „Wann imperative und deklarative APIs eingesetzt werden“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Wann imperative und deklarative APIs eingesetzt werden“?

Verstehen Sie die jeweiligen Kompromisse und entscheiden Sie, wann der Einsatz von Refs und imperativen Handles gerechtfertigt ist. Du übst React Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um React Academy zu starten?

Keine Vorkenntnisse erforderlich. React Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Wann imperative und deklarative APIs eingesetzt werden“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser React Academy-Lektion Code schreiben und ausführen?

Ja. Jede React Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. forwardRef: DOM-Refs für übergeordnete Komponenten verfügbar machen
  2. useImperativeHandle: benutzerdefinierte Instanzwerte
  3. Eine imperative Komponenten-API entwickeln
  4. Wann imperative und deklarative APIs eingesetzt werden
← Zurück zu React Academy