Die 40 wichtigsten React JS-Interviewfragen und -antworten (2026)
Bereiten Sie sich auf ein Vorstellungsgesprรคch mit React JS vor? Dann ist es an der Zeit, herauszufinden, was Sie erwartet. React JS Interviewfragen Hilft dabei, sowohl Ihre konzeptionelle Klarheit als auch Ihre Stรคrken bei der praktischen Umsetzung aufzuzeigen.
React JS bietet Fachkrรคften mit technischer Erfahrung und Branchenexpertise immense Karrierechancen. Ob Berufseinsteiger oder Senior mit 5 oder 10 Jahren Berufserfahrung โ analytische Fรคhigkeiten und technisches Fachwissen sind entscheidend. Diese Fragen und Antworten helfen Teamleitern, Managern und Entwicklern, ihre Kompetenzen zu verfeinern und in Top-Interviews zu รผberzeugen.
Diese Zusammenstellung basiert auf Erkenntnissen von รผber 85 Fachleuten, darunter Personalverantwortliche und technische Fรผhrungskrรคfte, und spiegelt die unterschiedlichen Erwartungen der Branche sowie reale Interviewmuster wider, die von Arbeitsteams in verschiedenen Bereichen gesammelt wurden.

Die wichtigsten React JS-Interviewfragen und -Antworten
1) Erklรคren Sie das virtuelle DOM und wie die Abgleichung in React funktioniert.
Antworten:
Das virtuelle DOM ist eine im Arbeitsspeicher befindliche Reprรคsentation der Benutzeroberflรคche, die React verwaltet, um UI-รnderungen effizient zu berechnen. Wenn sich Zustand oder Eigenschaften รคndern, rendert React einen neuen virtuellen DOM-Baum und fรผhrt dann eine Funktion aus. Differenzierung Algorithmus gegen den vorherigen Baum, um die minimale Menge an erforderlichen DOM-Operationen zu ermitteln. Dieser Prozess wird genannt Versรถhnung, minimiert Layout-Thrashing und kostspielige Browser-Reflows. React weist zu Tasten Es werden Elemente in Listen analysiert, um Knoten รผber verschiedene Darstellungen hinweg zuzuordnen, und es werden Heuristiken (wie der Vergleich von Typen und Schlรผsseln) verwendet, um zu entscheiden, ob Knoten aktualisiert, neu angeordnet oder entfernt werden sollen. Zu den Vorteilen gehรถren vorhersehbare Aktualisierungen, eine geringere Angriffsflรคche fรผr Fehler und eine bessere Performance in komplexen Benutzeroberflรคchen.
Ejemplo:
Rendern einer dynamischen Liste von Chatnachrichten: durch Verwendung von stabil key Werte (Nachrichten-IDs): Nur neue Nachrichten werden dem DOM hinzugefรผgt, wรคhrend bestehende Knoten unberรผhrt bleiben, wodurch unnรถtige Neuzeichnungen vermieden werden.
๐ Kostenloser PDF-Download: React JS Interviewfragen & Antworten
2) Welche verschiedenen Arten von Komponentenlebenszyklen gibt es in React, und wie werden Hooks diesen zugeordnet?
Antworten:
React-Komponenten durchlaufen die Phasen Mounting, Update und Unmounting. In Klassenkomponenten gibt es Lebenszyklusmethoden wie beispielsweise componentDidMount, shouldComponentUpdate, componentDidUpdateund componentWillUnmount Nebenwirkungen, Rendering-Entscheidungen und Aufrรคumarbeiten steuern. In Funktionskomponenten Haken gleichwertige Fรคhigkeiten bereitstellen: useEffect Behandelt Effekte nach dem Rendern; Aufrรคumfunktionen innerhalb useEffect Beim Aushรคngen oder vor dem nรคchsten Effekt ausfรผhren; useMemo und useCallback Kontrollmemoisierung; und useRef Hooks speichern verรคnderliche Referenzen รผber verschiedene Renderings hinweg. Zu den Vorteilen von Hooks gehรถren die Kompositionsfรคhigkeit, weniger Probleme mit der โthisโ-Bindung und die einfachere Wiederverwendung von Logik durch benutzerdefinierte Hooks. Der Hauptnachteil besteht darin, dass man die Regeln von Hooks und die Abhรคngigkeitsverwaltung erlernen muss.
Antwort mit Beispielen:
- Montageeffekt:
useEffect(() => fetchData(), []). - Aufrรคumarbeiten beim Aushรคngen:
useEffect(() => { start(); return stop; }, []).
3) Wie entscheiden Sie sich fรผr eine React-Anwendung zwischen clientseitigem Rendering (CSR), serverseitigem Rendering (SSR), statischer Seitengenerierung (SSG) und inkrementeller statischer Regeneration (ISR)?
Antworten:
Die Rendering-Strategie sollte sich an den Anforderungen an die Benutzererfahrung, der Aktualitรคt der Daten, den SEO-Anforderungen, den Infrastrukturbeschrรคnkungen und der Entwicklungsgeschwindigkeit orientieren. CSR eignet sich fรผr hochinteraktive Anwendungen, die eine Authentifizierung erfordern, bei denen SEO zweitrangig ist. SSR Es werden als erstes Bild mit echten Daten fรผr รถffentliche Seiten bereitgestellt, was die Time to First Byte und die Suchmaschinenoptimierung verbessert, jedoch mit hรถheren Serverkosten verbunden ist. SSG Seiten werden zur Build-Zeit vorab berechnet, um eine hervorragende Geschwindigkeit und Zwischenspeicherung zu gewรคhrleisten, wenn sich Daten nur selten รคndern. ISR Statische Seiten werden bedarfsgesteuert inkrementell aktualisiert, wodurch ein optimales Verhรคltnis zwischen Aktualitรคt und Performance gewรคhrleistet wird. Zu den relevanten Faktoren zรคhlen Cachefรคhigkeit, Personalisierung, Latenzzeiten fรผr ein globales Publikum und operative Komplexitรคt.
Tabelle: Vorteile vs. Nachteile
| Ansatz | Vorteile | Nachteile |
|---|---|---|
| CSR | Einfaches Hosting, vielfรคltige Interaktivitรคt | Langsamere erste Farbausgabe, schwรคchere Suchmaschinenoptimierung |
| SSR | Hervorragende Suchmaschinenoptimierung, aktuelle Daten beim ersten Laden | Hรถhere Serverlast, Komplexitรคt |
| SSG | Schnell, gรผnstig, CDN-freundlich | Veralteter Inhalt bis zur รberarbeitung |
| ISR | Schnell bei kontrollierter Frische | Mehr bewegliche Teile, die verwaltet werden mรผssen. |
4) Welche Strategie zur Zustandsverwaltung sollte verwendet werden: lokaler Zustand, Kontext, Redux oder Abfragebibliotheken?
Antworten:
Wรคhle die einfachstes Werkzeug das die Eigenschaften des Problems berรผcksichtigt. Komponentenlokaler Zustand รผber useState or useReducer ist ideal fรผr isolierte UI-Probleme. Kontext Funktioniert fรผr Werte, die hauptsรคchlich gelesen werden und die gesamte Anwendung betreffen (Design, Gebietsschema, aktueller Benutzer), ist aber nicht fรผr hรคufige Aktualisierungen in groรen Baumstrukturen optimiert. Redux Oder รคhnliche ereignisbasierte Speichersysteme sind hervorragend geeignet, wenn Sie Vorhersagbarkeit, Zeitreise-Debugging, Middleware und strikt unidirektionale Datenflรผsse benรถtigen. Datenabrufbibliotheken (Beispielsweise React-Query-รคhnliche Muster) verwalten den Lebenszyklus des Serverzustands โ Caching, Deduplizierung, Strategien zum erneuten Abrufen und Synchronisierung โ und reduzieren so den Boilerplate-Code. Eine pragmatische Architektur verwendet hรคufig Lokaler Zustand + Kontext fรผr die Konfiguration + eine Serverzustandsbibliothek, wobei Redux fรผr komplexe Arbeitsablรคufe reserviert bleibt.
Ejemplo:
Ein Dashboard verwendet React Query fรผr API-Caching, Context fรผr das Design und useReducer innerhalb komplexer Widgets zur lokalen Ereignisbehandlung.
5) Worin besteht der Unterschied zwischen useEffect und useLayoutEffect, und wann kommt welches Element zum Einsatz?
Antworten:
useEffect Wird ausgefรผhrt, nachdem der Browser neu gezeichnet wurde, wodurch es sich fรผr nicht blockierende Aufgaben wie Datenabruf, Abonnements und Protokollierung eignet. useLayoutEffect wird ausgefรผhrt synchron nach DOM-Mutationen, aber vor dem MalenDies ermรถglicht Messungen und Layoutanpassungen, die flimmerfrei erfolgen mรผssen (z. B. das Auslesen von Elementgrรถรen und das synchrone Neuanwenden von Stilen). Der Nachteil von useLayoutEffect Das Problem ist, dass es bei รผbermรครiger Anwendung das Malen blockieren und die Reaktionsfรคhigkeit beeintrรคchtigen kann. Eine gute Regel ist, mit Folgendem zu beginnen: useEffect bei Nebenwirkungen und greifen Sie zu useLayoutEffect nur dann, wenn Sie das Layout messen oder synchron verรคndern mรผssen, um die visuelle Korrektheit zu gewรคhrleisten.
Antwort mit Beispielen:
useEffect: Benutzerprofil nach dem Rendern abrufen.useLayoutEffect: Messen Sie die Grรถรe des Tooltips, um ihn vor dem Malen zu positionieren.
Schneller Vergleich
| Charakteristisch | useEffekt | useLayoutEffect |
|---|---|---|
| Timing | Nach dem Lackieren | Vor dem Lackieren |
| Anwendungsfall | Daten, Abonnements | Messungen, synchrone Layoutkorrekturen |
| Risiko | Leichte Ruckler bei schwerer Beladung | Blockiert Farbe, wenn sie schwer ist |
6) Erlรคutern Sie, wie Schlรผssel in Listen funktionieren und welche Fallstricke bei der Verwendung von Array-Indizes auftreten kรถnnen.
Antworten:
Schlรผssel ermรถglichen es React, Listenelemente zwischen verschiedenen Renderings prรคzise zu identifizieren. Stabile, eindeutige Schlรผssel erlauben es React, Elemente mit minimalen DOM-รnderungen neu anzuordnen, einzufรผgen oder zu entfernen. Array-Indizes Die Verwendung von Indizes als Schlรผssel ist problematisch, wenn Elemente neu angeordnet, eingefรผgt oder gelรถscht werden kรถnnen, da React den vorherigen Zustand mรถglicherweise dem falschen Element zuordnet, was zu subtilen Fehlern fรผhren kann (z. B. falschen Eingabewerten oder Animationen). Es empfiehlt sich, einen unverรคnderlichen, domรคnenspezifischen Bezeichner wie eine Datenbank-ID zu verwenden. Ist die Liste tatsรคchlich statisch und wird sie nie neu angeordnet, sind Indizes akzeptabel, dies ist jedoch eher die Ausnahme als die Regel.
Ejemplo:
Ein verschiebbares Kanban-Board sollte Karten-IDs und keine Indizes verwenden, um die Identitรคt der Komponenten beim Verschieben per Drag & Drop zu erhalten.
7) Wo finden Memoization-Techniken in React Anwendung, und was sind ihre Vor- und Nachteile?
Antworten:
Memoization reduziert unnรถtige Berechnungen und erneute Renderings, indem vorherige Ergebnisse wiederverwendet werden, wenn sich die Eingaben nicht geรคndert haben. In React, React.memo Speichert die Ausgabe der Komponente zwischen, useMemo speichert aufwรคndige Berechnungen im Cache, useCallback Die Funktion speichert die Identitรคten von an Kindfunktionen รผbergebenen Funktionen zwischen. Die Hauptvorteile sind stabile Leistung und geringere CPU-Auslastung bei intensiver Nutzung. Zu den Nachteilen zรคhlen die Komplexitรคt, potenzielle Fehler durch veraltete Cache-Daten bei fehlerhaften Abhรคngigkeiten und der erhรถhte Speicherbedarf.
Tabelle: Verschiedene Methoden zum Memoisieren
| Typ | Zweck | Typische zu berรผcksichtigende Faktoren |
|---|---|---|
React.memo(Component) |
รberspringe das erneute Rendern, wenn die Eigenschaften gleich sind. | Volatilitรคt der Proprietary, Kinderkosten |
useMemo(fn, deps) |
Zwischengespeicherte berechnete Werte | Rechenkosten im Vergleich zum Speicher |
useCallback(fn, deps) |
Identitรคt einer stabilen Funktion | Korrektheit der Abhรคngigkeit |
Antwort mit Beispielen:
Memoisieren eines gefilterten, sortierten Datensatzes fรผr ein Raster mithilfe von useMemound umschlieรen Sie die Zellrenderer-Komponenten mit React.memo um erneute Rendering-Stรผrme zu vermeiden.
8) Bevorzugen Sie kontrollierte oder unkontrollierte Komponenten fรผr Formulare? Erlรคutern Sie Vor- und Nachteile sowie die verschiedenen Formularzustรคnde.
Antworten:
Gesteuerte Komponenten Binden Sie Eingaben an den React-Zustand รผber value und onChangeDies ermรถglicht Validierung, Maskierung und bedingte Benutzeroberflรคchen, die auf einer zentralen Datenquelle basieren. Zu den Vorteilen zรคhlen Vorhersagbarkeit und einfache Integration mit anderen Zustรคnden; Nachteile sind die Kosten fรผr das erneute Rendern bei jedem Tastendruck ohne Optimierung. Unkontrollierte Komponenten Sie nutzen das DOM als zentrale Datenquelle mithilfe von Referenzen, was den Aufwand fรผr einfache Formulare reduziert und die Struktur vereinfacht, jedoch eine weniger zentrale Validierung ermรถglicht. Bei komplexen Arbeitsablรคufen ist ein Hybridmuster รผblich, bei dem kontrollierte Eingabefelder fรผr kritische Bereiche und unkontrollierte fรผr groรe, textlastige Bereiche verwendet werden.
Ejemplo:
Ein Anmeldeformular verwendet kontrollierte Felder zur E-Mail- und Passwortvalidierung, wรคhrend ein Notiztextfeld unkontrolliert ist, um den Aufwand fรผr das erneute Rendern zu reduzieren.
9) Wann wรผrden Sie Context anstelle eines benutzerdefinierten Hooks verwenden, und worin besteht der konzeptionelle Unterschied zwischen ihnen?
Antworten:
Kontext ist eine Transportmechanismus fรผr Werte, die viele Komponenten benรถtigen, wodurch Prop-Drilling vermieden wird. Es verwaltet den Zustand nicht selbst; es stellt ihn lediglich den Nachfolgern zur Verfรผgung. Spezialhaken Der Kontext kapselt wiederverwendbare Logik โ er kombiniert Zustand, Effekte und externe Dienste โ und gibt Werte und Funktionen zurรผck. Verwenden Sie den Kontext, um gemeinsam genutzte, hauptsรคchlich lesbare Konfigurationen bereitzustellen oder einen Datenspeicher zugรคnglich zu machen. Nutzen Sie benutzerdefinierte Hooks, um das Verhalten des Datenspeichers zu implementieren oder Aspekte wie Authentifizierung, Feature-Flags oder Datenabrufrichtlinien zu orchestrieren. Die beiden ergรคnzen sich: Ein gรคngiges Muster ist useAuth() als maรgefertigter Haken, der durch einen AuthContext.
Antwort mit Beispielen:
AuthProvider Stellt Benutzer und Token รผber den Kontext bereit; useAuth Behandelt Nebeneffekte beim Anmelden, Aktualisieren und Abmelden.
10) Kรถnnen Sie Strategien zur Leistungsoptimierung groรer React-Anwendungen skizzieren, einschlieรlich der Merkmale langsamer Renderings und Hotspots im Lebenszyklus?
Antworten:
Die Leistungsoptimierung beginnt mit der Messung. Identifizieren Sie langsame Pfade mithilfe des React DevTools Profilers und der Browser-Performance-Panels, um kritische Stellen fรผr die Code-Abstimmung und ressourcenintensive Commits zu finden. Zu den Vorgehensweisen gehรถren: Bundesland Ort (den Staat in der Nรคhe seiner Verbraucher halten), Memoisierung (React.memo, useMemo, useCallback), Listenvirtualisierung fรผr lange Listen Code-Aufteilung mit verzรถgertem Laden zur Reduzierung des anfรคnglichen Bundles, und Entprellung oder Drosselung Hochfrequente Ereignisse. Fรผr serverbasierte Daten empfiehlt sich die Verwendung von Caching mit einer Abfragebibliothek und die Nutzung weiterer Funktionen. spannungsfreundlich Muster fรผr ein reibungsloseres Laden. Achten Sie auf kritische Stellen im Lebenszyklus, wie z. B. Effekte, die aufgrund umfangreicher Abhรคngigkeitsarrays zu hรคufig ausgefรผhrt werden, oder Komponenten, die aufgrund hรคufig wechselnder Kontextwerte neu gerendert werden.
Antwort mit Beispielen:
Virtualisieren Sie eine Tabelle mit 10,000 Zeilen mithilfe einer Windowing-Bibliothek; laden Sie rechenintensive Diagramme verzรถgert hinter routenbasiertem Code-Splitting, um die anfรคngliche Darstellung zu verbessern.
11) Worin besteht der Unterschied zwischen Props und State in React?
Antworten:
Beides props und state Sie beeinflussen zwar die Darstellung der Komponenten, aber ihr Zweck und ihr Lebenszyklus unterscheiden sich grundlegend. Requisiten Eigenschaften (kurz fรผr Properties) sind unverรคnderliche Eingaben, die von einer รผbergeordneten an eine untergeordnete Komponente รผbergeben werden und die Konfiguration oder Daten fรผr die Darstellung definieren. Sie flieรen nach unten im unidirektionalen Datenfluss von React und sollte von der empfangenden Komponente niemals verรคndert werden. StaatDie Variable hingegen ist verรคnderlich und wird intern von der Komponente verwaltet. Sie bestimmt das dynamische Verhalten, das sich im Laufe der Zeit รคndert, wie beispielsweise Formulareingabewerte oder die umgeschaltete Sichtbarkeit.
Tabelle der wichtigsten Unterschiede:
| Faktor | Requisiten | Staat |
|---|---|---|
| Wandlungsfรคhigkeit | Unverรคnderlich | Verรคnderlich |
| Impressum | Vom Elternteil weitergegeben | Gehรถrt zu Komponente |
| Update-Methode | Eltern-Neurendering | useState or setState |
| Luftรผberwachung | Konfiguration | Dynamische UI-รnderungen |
| Lebenszyklus | Existiert wรคhrend des Renderns | Bleibt bestehen, lรถst erneutes Rendern aus |
Ejemplo:
A <Button color="blue" /> verwendet Requisiten, um die Farbe zu bestimmen, wรคhrend ein clicked Ein boolescher Wert in seinem Zustand schaltet das visuelle Feedback um.
12) Erlรคutern Sie das Komponentenarchitekturmuster in React und die verschiedenen Arten der Komponentenklassifizierung.
Antworten:
React-Anwendungen folgen einem komponentenbasierte ArchitekturDie Benutzeroberflรคche wird in kleine, wiederverwendbare Bausteine โโzerlegt. Komponenten lassen sich nach ihren Eigenschaften kategorisieren. Zweck und Verantwortung:
- Prรคsentationskomponenten (einfache Komponenten) โ Fokus auf die Benutzeroberflรคche, Datenempfang รผber Props und seltene Zustandsverwaltung.
- Container (Smart) Komponenten โ Sie verarbeiten Logik, rufen Daten ab und verwalten den Zustand; sie rendern Prรคsentationskomponenten.
- Hรถherwertige Komponenten (HOCs) โ Funktionen, die eine Komponente entgegennehmen und eine erweiterte Version mit zusรคtzlichem Verhalten zurรผckgeben.
- Reine Komponenten โ Die Leistung wird durch einen oberflรคchlichen Vergleich von Eigenschaften und Zustand optimiert.
- Funktionale vs. Klassenkomponenten โ Funktionale Komponenten (mit Hooks) werden heutzutage im Hinblick auf Lesbarkeit und Leistung bevorzugt.
Ejemplo:
A <UserProfile /> Die Komponente kann prรคsentationsbezogen sein und Benutzerinformationen empfangen, wรคhrend <UserProfileContainer /> Ruft Daten ab und verwaltet deren Lebenszyklus.
13) Wie geht React mit Fehlergrenzen um und warum sind diese wichtig?
Antworten:
Fehlergrenzen sind spezielle React-Komponenten, die abfangen JavaSkriptfehler werden an beliebiger Stelle im Komponentenbaum wรคhrend des Renderings, in Lebenszyklusmethoden oder Konstruktoren erkannt. Sie verhindern Abstรผrze der gesamten Anwendung, indem sie Fehler auf bestimmte Teilbรคume beschrรคnken. Sie kรถnnen dies wie folgt implementieren: componentDidCatch(error, info) und static getDerivedStateFromError() in einer Klassenkomponente.
Vorteile:
- Die Stabilitรคt der Benutzeroberflรคche wird durch die Anzeige von Ausweich-Benutzeroberflรคchen gewรคhrleistet.
- Fehler erfassen und protokollieren, um sie zu analysieren.
- Verhindern Sie kaskadierende Unmounts.
Ejemplo:
class ErrorBoundary extends React.Component {
state = { hasError: false };
static getDerivedStateFromError() { return { hasError: true }; }
render() { return this.state.hasError ? <h2>Something went wrong.</h2> : this.props.children; }
}
14) Was sind React-Fragmente und wie unterscheiden sie sich von Wrappern? Elemente?
Antworten:
Reagieren Fragmente (<></>Mit Wrappern kรถnnen Sie mehrere Elemente gruppieren, ohne zusรคtzliche Knoten im DOM hinzuzufรผgen. Dies ist fรผr eine saubere Struktur unerlรคsslich, insbesondere in Listen, Tabellen und semantischem HTML, wo zusรคtzliche Wrapper Layout- oder Barrierefreiheitsprobleme verursachen kรถnnten. Im Gegensatz zu Wrappern <div>Fragmente werden nicht im DOM gerendert und bieten daher Vorteile in Bezug auf Performance und Semantik.
Ejemplo:
return (
<>
<h1>Title</h1>
<p>Description</p>
</>
);
Differenztabelle:
| Faktor | Fragment | <div> Verpackung |
|---|---|---|
| DOM-Ausgabe | Keine Prรคsentation | Fรผgt einen zusรคtzlichen Knoten hinzu |
| Luftรผberwachung | Strukturelle Gruppierung | Styling oder Layout |
| Leistung | Arbeitsumgebungen | Leichter Overhead |
15) Welchen React Hook wรผrden Sie zur Leistungsoptimierung verwenden und warum?
Antworten:
Leistungskritische React-Komponenten basieren hรคufig auf Memoisierungshaken und faul laden um redundante Arbeit zu minimieren. Gรคngige Hooks sind:
useMemoโ Speichert rechenintensive Ergebnisse im Cache.useCallbackโ Verhindert unnรถtige Kind-Renderings aufgrund von Funktionsidentitรคtsรคnderungen.useTransitionโ Verschiebt nicht dringende Aktualisierungen fรผr eine reibungslosere Benutzeroberflรคche.useDeferredValueโ Verschiebt rechenintensive Aufgaben bis nach unmittelbaren Interaktionen.
Ejemplo:
Ein groรes Datengitter, das useMemo Durch die Filterung der Ergebnisse kann der CPU-Verbrauch um 50 % oder mehr reduziert werden.
Vorteile:
- Reduziert den Materialverbrauch beim Putzen.
- Sorgt dafรผr, dass die Benutzeroberflรคche auch unter Last reaktionsfรคhig bleibt.
Nachteil:
- Erfordert prรคzise Abhรคngigkeitsverwaltung; bei fehlerhafter Verwaltung kรถnnen Fehler durch veraltete Cache-Daten auftreten.
16) Was sind React Portale und welche Vorteile bieten sie?
Antworten:
Portals Ermรถglicht es React-Komponenten, Kindelemente in einem DOM-Knoten auรerhalb ihrer รผbergeordneten Hierarchie zu rendern, typischerweise fรผr Modals, Tooltips oder Dropdowns, die visuell รberlauf- oder Stapelkontexte โvermeidenโ mรผssen. Implementiert mit ReactDOM.createPortal(child, container)Sie gewรคhrleisten die Konsistenz des Ereignis-Bubblings, sodass Ereignisbehandler so funktionieren, als ob das Element innerhalb seiner ursprรผnglichen Hierarchie verblieben wรคre.
Vorteiletabelle:
| Vorteil | Beschreibung |
|---|---|
| Strukturelle Unabhรคngigkeit | Rendern Sie auรerhalb des รผbergeordneten Baums |
| CSS/Stapelsteuerung | Vermeiden overflow: hidden oder z-Index-Probleme |
| Ereignisweiterleitung | Die synthetischen Ereignisse von React werden weiterhin korrekt weitergeleitet. |
| Wiederverwendbarkeit | Ideal fรผr globale Overlays |
Ejemplo:
createPortal(<ModalContent />, document.getElementById('modal-root'));
17) Erlรคutern Sie, wie React Router die Navigation und den Zustand zwischen Seiten verwaltet.
Antworten:
React Router ist eine deklarative Routing-Bibliothek, die die Benutzeroberflรคche mit der URL des Browsers synchronisiert. Sie verwendet die History-API Sitzungsverlauf bearbeiten, ohne die Seite vollstรคndig neu laden zu mรผssen. Kernkonzepte umfassen Anreise, Linksund Outlet fรผr verschachteltes Routing. Die Bibliothek unterstรผtzt dynamische Routen, URL-Parameterund Navigationshaken (useNavigate, useParams, useLocationReact Router v6 fรผhrte eine vereinfachte Syntax und Daten-APIs ein fรผr Ladeprogramm und Aktion Funktionen, Verbesserung der SSR-Integration und des Zustandsmanagements.
Ejemplo:
<Route path="/user/:id" element={<UserProfile />} />
Vorteile:
- Ermรถglicht die Navigation auf einzelnen Seiten.
- Behรคlt die Scrollposition und den Verlauf bei.
- Lรคsst sich nahtlos in Lazy Loading integrieren und sorgt so fรผr eine bessere Performance.
18) Welche verschiedenen Mรถglichkeiten gibt es, Seiteneffekte in React-Anwendungen zu behandeln?
Antworten:
Nebenwirkungen bezeichnen Aktionen, die etwas auรerhalb des Gรผltigkeitsbereichs einer Komponente betreffen (API-Aufrufe, DOM-Manipulation, Abonnements). Zu den wichtigsten Werkzeugen gehรถren:
useEffectfรผr clientseitige Effekte nach dem Rendern.- Ereignishandler fรผr benutzergesteuerte Effekte.
- Benutzerdefinierte Haken um Effektlogik wiederzuverwenden (zum Beispiel
useFetch). - Middleware (wie Redux Saga oder Thunk) fรผr komplexe asynchrone Orchestrierung.
- React Query oder SWR zur automatischen Verwaltung des Serverstatus und der Nachladezyklen.
Ejemplo:
A useEffect Ruft Daten einmalig beim Mounten ab:
useEffect(() => { fetchData(); }, []);
Vorteile:
Vereinfachtes asynchrones Management, bessere Kapselung und klarere Lebenszykluskontrolle.
19) Ist React ein Framework oder eine Bibliothek? Erlรคutern Sie die Faktoren, die den Unterschied ausmachen.
Antworten:
React ist offiziell ein Es handelt sich nicht um ein vollstรคndiges Rahmenwerk. Es konzentriert sich ausschlieรlich auf die Ansichtsebene, wodurch Rendering-, Zustands- und Komponentenabstraktionen bereitgestellt werden, ohne Routing, Datenabruf oder Build-Struktur zu erzwingen.
Vergleichstabelle:
| Faktor | Bibliothek (React) | Framework (Angular, Vue) |
|---|---|---|
| Geltungsbereich | Ansichtsdarstellung | Vollstรคndige MVC-Architektur |
| Rechthaberisch | Niedrig | Hoch |
| Kontrollieren | Entwicklergesteuert | Framework-gesteuert |
| Flexibilitรคt | Hoch | Durch Konventionen beschrรคnkt |
| Lernkurve | Moderat | Hรถher aufgrund der Komplexitรคt |
Das React-รkosystem (Redux, Router, Query, Next.js) bildet effektiv ein โMeta-Frameworkโ und bietet modulare Kompositionsfรคhigkeit, die es Entwicklern ermรถglicht, ihre eigene Architektur zu erstellen.
20) Wann sollte man React.lazy und Suspense verwenden, und was sind deren Vorteile?
Antworten:
React.lazy ermรถglicht Code-Aufteilung indem Komponenten nur bei Bedarf dynamisch geladen werden, wรคhrend Suspense Es wird eine alternative Benutzeroberflรคche bereitgestellt, bis die Komponente bereit ist. Diese Kombination verbessert die anfรคngliche Ladeleistung und die vom Benutzer wahrgenommene Reaktionsfรคhigkeit.
Ejemplo:
const Chart = React.lazy(() => import('./Chart'));
<Suspense fallback={<Loader />}>
<Chart />
</Suspense>
Vorteiletabelle:
| Vorteil | Erlรคuterung |
|---|---|
| Leistung | Lรคdt Code bei Bedarf |
| Benutzererfahrung | Sanftes Laden als Ausweichlรถsung |
| Bรผndelgrรถรe | Kleineres Anfangspaket |
| Einfache Bedienung | Native React API, minimales Setup |
Best Practices:
- Mehrere Lazy-Komponenten in einer Suspense-Grenze zusammenfassen.
- Verwenden Sie aussagekrรคftige Ausweichindikatoren fรผr Barrierefreiheit.
21) Erlรคutern Sie, was React Server Components (RSCs) sind und welche Vorteile sie bieten.
Antworten:
React Server Components (RSCs) sind eine wichtige Innovation, die eingefรผhrt wurde, um die Leistung und die Entwicklererfahrung zu verbessern, indem sie es Komponenten ermรถglichen, rendern Sie auf dem Server, ohne deren Daten zu senden JavaSkript an den ClientSie werden vollstรคndig auf dem Server ausgefรผhrt, rufen Daten ab, lesen aus Datenbanken oder fรผhren E/A-Operationen sicher durch, bevor sie serialisierte Ausgaben an den Client streamen.
Vorteile:
- Kleinere Bรผndelgrรถรe โ Kein clientseitiges JavaScript fรผr rein serverseitige Logik.
- Verbesserte Leistung โ Serverseitiges Datenabrufen reduziert Wasserfalleffekte.
- Sicherheit โ Sensibler Code erreicht niemals den Browser.
- Besseres Caching โ Serverkomponenten kรถnnen am Netzwerkrand zwischengespeichert werden.
Ejemplo:
A <ProductList /> Die Serverkomponente kann Daten direkt aus einer Datenbank abrufen und die Ergebnisse an einen Server weitergeben. <ProductCard /> Clientkomponente.
22) Worin besteht der Unterschied zwischen React-Hydratisierung und Reconciliation?
Antworten:
Obwohl beide Begriffe die Aktualisierung der Benutzeroberflรคche durch React beinhalten, unterscheiden sie sich in ihrem Zweck:
- Versรถhnung ist der Prozess des Vergleichs des virtuellen DOM-Baums mit seiner vorherigen Version, um die minimale Menge an DOM-Aktualisierungen zu bestimmen.
- Hydrationist hingegen der Prozess des Anhรคngens der Ereignis-Listener und internen Strukturen von React an serverseitig gerendertes HTML Auf der Clientseite wird statisches Markup in eine vollstรคndig interaktive Anwendung umgewandelt.
Vergleichstabelle:
| Faktor | Versรถhnung | Hydration |
|---|---|---|
| Auslรถsen | Client-Neurendering | Erster Seitenaufruf (SSR) |
| Zweck | DOM effizient aktualisieren | SSR-HTML interaktiv gestalten |
| Geltungsbereich | Virtuelles DOM-Diffing | Ereignisbindung + Zustandswiederanbindung |
| Frequenz | Mehrmals | Nach dem SSR-Rendering |
Ejemplo:
Nachdem eine Next.js-App vorgerendertes HTML gesendet hat, React Hydrate Dadurch kรถnnen Komponenten auf Ereignisse reagieren, ohne dass alles neu gerendert werden muss.
23) Wie verbessert Concurrent Rendering die Benutzererfahrung in React 18+?
Antworten:
Gleichzeitiges Rendern ermรถglicht es React, Rendering-Vorgรคnge je nach Benutzerprioritรคt zu unterbrechen, anzuhalten oder fortzusetzen. Dadurch wird verhindert, dass die Benutzeroberflรคche bei rechenintensiven Vorgรคngen oder erneutem Rendern einfriert. Funktionen wie beispielsweise useTransition und useDeferredValue Diese Fรคhigkeit nutzen, um zu trennen dringende Updates (wie Tippen) von nicht dringend solche (wie Filterung).
Vorteile:
- Reibungslose, reaktionsschnelle Interaktionen.
- Zeitaufteilung, um ein Blockieren des Hauptthreads zu verhindern.
- Vorhersehbare Priorisierung fรผr eine bessere UX.
Ejemplo:
const [isPending, startTransition] = useTransition(); startTransition(() => setFilteredList(filter(items, term)));
Hier bleibt die Typisierung auch beim Filtern groรer Datensรคtze flรผssig, da React nicht dringende Aktualisierungen gleichzeitig plant.
24) Welche verschiedenen Mรถglichkeiten gibt es, Tests in React-Anwendungen durchzufรผhren?
Antworten:
React-Tests lassen sich wie folgt klassifizieren: Einheit, Integrationund End-to-End Ebenen.
Tabelle der Testmethoden:
| Typ | Werkzeug | Zweck |
|---|---|---|
| Einheit | ist | Isolierte Funktionen/Komponenten testen |
| Integration | Reaktionstestbibliothek | Testen Sie UI-Interaktionen und Zustandsรคnderungen |
| E2E | Cypress / Dramatiker | Benutzerablรคufe in echten Browsern testen |
Best Practices:
- Bevorzugen Reaktionstestbibliothek รผber Enzyme (modern, DOM-orientiert).
- Mock-APIs mithilfe von
msw(Fake-Servicekraft). - Vermeiden Sie das Testen von Implementierungsdetails โ konzentrieren Sie sich auf das Verhalten.
Ejemplo:
test('renders user name', () => {
render(<User name="Alice" />);
expect(screen.getByText(/Alice/)).toBeInTheDocument();
});
25) Welche Build-Tools und Bundler werden am hรคufigsten mit React verwendet, und worin bestehen die Unterschiede?
Antworten:
React kann mit verschiedenen Bundlern und Compilern integriert werden, die jeweils fรผr unterschiedliche Anwendungsfรคlle optimiert sind.
Vergleichstabelle:
| Werkzeug | Eigenschaften | Vorteile | Nachteile |
|---|---|---|---|
| Webpack | Sehr konfigurierbar | Ausgereift, mit vielen Plugins | Komplexes Setup |
| Schraube | ESM-basierter, blitzschneller Entwicklungsserver | Instant HMR, moderne Syntax | Eingeschrรคnkte Unterstรผtzung fรผr รคltere Plugins |
| Paket | Zero-Config | Automatische Optimierung | Less flexibel |
| bauen | Go-basierter Compiler | Extrem schnell | Weniger รkosystem-Plugins |
Ejemplo:
Moderne Projekte รผbernehmen hรคufig Schraube fรผr die Entwicklungsgeschwindigkeit und bauen in CI/CD-Pipelines fรผr effiziente Produktions-Builds.
26) Wie erweitert Next.js die Mรถglichkeiten von React?
Antworten:
Next.js ist ein Reaktionsrahmen Es bietet eine vordefinierte Architektur fรผr Routing, SSR und statische Generierung. Es fรผhrt hybride Rendering-Modelle, API-Routen und Funktionen fรผr den Edge-Einsatz ein.
Vorteile:
- Eingebaut SSR/SSG/ISR unterstรผtzen.
- App Router mit React Server Components.
- Bildoptimierung und Middleware fรผr Leistung und Sicherheit.
- Einfache API-Routen fรผr serverlose Funktionen.
Ejemplo:
app/page.js fรผr SSR-gerenderte Seiten; app/api/route.js fรผr Serverendpunkte.
Zusammenfassend Next.js ermรถglicht die Entwicklung produktionsreifer React-Anwendungen mit minimalem Konfigurationsaufwand.
27) Was sind einige hรคufige Performance-Probleme bei React und wie lassen sie sich vermeiden?
Antworten:
Hรคufige Performance-Probleme bei React sind:
- Unnรถtige Neudarstellungen โ Beheben Sie dies mit
React.memooder die Aufteilung von Komponenten. - Inline-Objekt-/Array-Erstellung - Verwenden
useMemofรผr stabile Referenzen. - Groรe Listen โ Fensterfunktion implementieren (
react-window,react-virtualized). - Aufwรคndige Berechnungen โ Zwischenspeichern oder an Web-Worker auslagern.
- รbermรครiger Gebrauch des Kontextes โ Hรคufige Aktualisierungen wirken sich tiefgreifend aus; abgeleiteter Zustand wird bevorzugt.
Ejemplo:
Wenn Sie bestehen { a: 1 } Wenn eine Komponente inline in einer memoisierten Komponente eingebunden wird, wird sie bei jedem Rendern des รผbergeordneten Elements neu gerendert. Dies lรคsst sich beheben, indem das Objekt memoisiert wird.
Tabelle mit Leistungstipps:
| Problem | Optimierungstechnik |
|---|---|
| Neu rendern | React.memo, useCallback |
| Teure Berechnungen | useMemoWeb Workers |
| Groรe Datensรคtze | Virtualisierung |
| Hรคufige Kontextaktualisierungen | Lokalisieren Sie den Zustand |
28) Erlรคutern Sie den Unterschied zwischen useReducer und useState.
Antworten:
Beide Hooks verwalten den Zustand, unterscheiden sich aber in Komplexitรคt und Kontrollmรถglichkeiten.
useStateist ideal fรผr einfache, isolierte Zustandsรผbergรคnge.useReducerzentralisiert komplexe Zustandslogik in einem Reduzierfunktionunter Verwendung vondispatchMaรnahmen fรผr vorhersehbare Aktualisierungen.
Vergleichstabelle:
| Faktor | useState | useReducer |
|---|---|---|
| Syntax | [value, setValue] |
[state, dispatch] |
| Komplexitรคt | Einfacher | Mรครig bis komplex |
| Luftรผberwachung | Unabhรคngige Staaten | Verwandte oder verschachtelte Zustรคnde |
| Fehlerbeseitigung | Less ausfรผhrlich | Einfacher รผber protokollierte Aktionen |
| Beispiel | Formularumschalter | Formularvalidierung oder mehrstufige Formulare |
Ejemplo:
const [state, dispatch] = useReducer(reducer, { count: 0 });
dispatch({ type: 'increment' });
29) Wie kann man die Barrierefreiheit (a11y) in React-Anwendungen verbessern?
Antworten:
Barrierefreiheit gewรคhrleistet, dass alle Nutzer, auch Menschen mit Behinderungen, Ihre App effektiv nutzen kรถnnen. React fรถrdert die Barrierefreiheit durch semantische Auszeichnung und ARIA-Attribute.
Best Practices:
- Arbeiten jederzeit weiterbearbeiten kรถnnen. Jede Prรคsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen, semantisches HTML (
<button>vs<div onClick>). - Fokus steuern mit
refundtabIndex. - Verwenden Sie ARIA-Rollen fรผr dynamische Komponenten.
- Sorgen Sie fรผr ausreichenden Farbkontrast und bieten Sie Alternativtexte fรผr die Bilder an.
- Nutzen Sie Tools wie eslint-plugin-jsx-a11y und Achse-Kern fรผr Audits.
Ejemplo:
<button aria-label="Close dialog" onClick={closeModal}>ร</button>
Vorteile:
- Grรถรere Reichweite fรผr das Publikum.
- SEO-Optimierung.
- Einhaltung der WCAG-Standards.
30) Kรถnnen Sie beschreiben, worin sich Code-Splitting und Lazy Loading unterscheiden und wann man welche Methode verwendet?
Antworten:
Beide Techniken optimieren die Bรผndelgrรถรe und die Ladeleistung, unterscheiden sich aber in Ausfรผhrungszeitpunkt.
- Codeaufteilung Unterteilt groรe Datenpakete in kleinere Teile, die unabhรคngig voneinander geladen werden kรถnnen.
- Faules Laden Das Laden dieser Datenblรถcke wird verzรถgert, bis sie benรถtigt werden.
Vergleichstabelle:
| Faktor | Code-Aufteilung | Faules Laden |
|---|---|---|
| Definition | Teilt den Code in Abschnitte auf | Lรคdt bei Bedarf Teile des Pakets |
| Werkzeug | Webpack, Vite | React.lazy, dynamisch import() |
| Zweck | Optimieren Sie die Bundle-Grรถรe | Verbesserung der Laufzeitleistung |
| Ausfรผhrung | Bauzeit | Laufzeit |
Ejemplo:
const Settings = React.lazy(() => import('./Settings'));
Durch die Kombination dieser Techniken wird die Interaktionszeit verkรผrzt und die wahrgenommene Geschwindigkeit groรer Anwendungen erhรถht.
31) Erlรคutern Sie das Konzept der Render Props und wie es sich von Higher-Order Components (HOCs) unterscheidet.
Antworten:
Render-Requisiten ist ein Muster in React, bei dem eine Komponente eine Funktion als Eigenschaft Das teilt der Komponente mit, was gerendert werden soll. Dadurch kann die Komponentenlogik ohne Duplizierung von mehreren Komponenten gemeinsam genutzt werden.
HOCs hingegen wickeln eine Komponente und gibt eine erweiterte Version mit eingefรผgten Eigenschaften oder Verhaltensweisen zurรผck.
Vergleichstabelle:
| Faktor | Render-Requisiten | HOC |
|---|---|---|
| Umsetzung | Funktion als Kind | Funktions-Wrapper-Komponente |
| Zusammensetzung | Inline-Steuerung | Deklaratives Wrapping |
| Ablesbarkeit | Oft klarer | Kann zu einem Verpackungschaos fรผhren |
| Luftรผberwachung | Dynamische Rendering-Logik | Querschnittsthemen |
Ejemplo:
<DataProvider render={data => <UserList users={data} />} />
Render Props bieten eine hรถhere Flexibilitรคt und vermeiden Namenskonflikte, die bei HOCs hรคufig auftreten.
32) Welche verschiedenen Arten von Spezialhaken gibt es und welche Vorteile bieten sie?
Antworten:
Benutzerdefinierte Hooks kapseln wiederverwendbare Logik, die Zustand, Seiteneffekte und Hilfsfunktionen kombiniert. Sie verbessern die Wiederverwendbarkeit des Codes, die Trennung der Belange und die Testbarkeit.
Arten & Beispiele:
- Haken im staatlichen Management -
useToggle,useForm. - Datenabruf-Hooks -
useFetch,useQuery. - UI/UX-Hooks -
useWindowSize,useDarkMode. - Integrationshaken -
useLocalStorage,useMediaQuery. - Performance-Hooks -
useDebounce,useThrottle.
Vorteile:
- Zentralisierte Logikwiederverwendung.
- Sauberere Komponenten.
- Unabhรคngige Prรผfung.
Ejemplo:
function useLocalStorage(key, initial) {
const [value, setValue] = useState(() => JSON.parse(localStorage.getItem(key)) || initial);
useEffect(() => localStorage.setItem(key, JSON.stringify(value)), [value]);
return [value, setValue];
}
33) Wie geht man mit Speicherlecks in React-Anwendungen um?
Antworten:
Speicherlecks entstehen, wenn nicht eingebundene Komponenten noch Referenzen auf Ressourcen oder Abonnements halten. Sie beeintrรคchtigen die Leistung und fรผhren zu unvorhersehbarem Verhalten.
Prรคventionstechniken:
- Aufrรคumeffekte in
useEffect: useEffect(() => { const id = setInterval(logData, 1000); return () => clearInterval(id); }, []); - Asynchrone Aufrufe abbrechen mit automatisierten
AbortController. - Vermeiden Sie die Aufbewahrung alter Verschlรผsse Bezug auf alte Eigenschaften/Zustรคnde.
- Abmeldung von Ereignissen oder Sockets beim Aussteigen.
- React Profiler verwenden um langsames Speicherwachstum zu erkennen.
Ejemplo:
In einer Chat-App sollten Socket-Listener immer getrennt werden, wenn ein Benutzer den Chatraum verlรคsst.
34) Was sind die besten Vorgehensweisen fรผr die Verwaltung von Formularen in groรen React-Anwendungen?
Antworten:
Die Verwaltung von Formularen in React-Anwendungen im Unternehmensmaรstab erfordert ein ausgewogenes Verhรคltnis zwischen Kontrolle, Leistung und Wartbarkeit.
Best Practices:
- Verwenden Sie Bibliotheken wie Formik, Hakenform reagierenden Finale Form zur Validierung und Feldregistrierung.
- Zusammengehรถrige Felder werden mithilfe verschachtelter Komponenten oder Kontexte gruppiert.
- Tragen Sie Schemavalidierung (Ja, Zod) der Konsequenz halber.
- Aufwรคndige Validierungen oder API-Prรผfungen entlasten.
- Der Formularstatus sollte lokal gespeichert werden, es sei denn, er wird global benรถtigt.
Ejemplo:
React Hook Form minimiert erneute Renderings durch Isolierung des Eingabezustands.
const { register, handleSubmit } = useForm();
<input {...register('email', { required: true })} />
35) Welche Entwurfsmuster sind bei der React-Entwicklung am nรผtzlichsten und was sind ihre Merkmale?
Antworten:
React eignet sich auf natรผrliche Weise fรผr verschiedene Software-Designmuster zur Entwicklung einer wartungsfreundlichen und skalierbaren UI-Architektur.
| Schnittmuster | Beschreibung | Beispiel |
|---|---|---|
| Container-Prรคsentator | Trennen Sie die Logik (Container) von der Benutzeroberflรคche (Prรคsentator). | DataContainer โ UIComponent |
| Kontrolliert-Unkontrolliert | Formulardaten รผber Zustand vs. DOM verwalten | Formik vs. Rohdaten |
| Verbindungskomponenten | Eltern kontrollieren die Zusammensetzung des Kindes | <Tabs><Tab /></Tabs> |
| Anbietermuster | Status รผber Kontext teilen | ThemeProvider |
| Hรคkelmuster | Zustandsbehaftete Logik wiederverwenden | useAuth, useFetch |
Ejemplo:
A Tabs Die Komponente legt den Kontext offen, so dass <Tab> Kinder registrieren sich automatisch โ eine saubere Anwendung der Verbindungskomponente Muster.
36) Was sind die wichtigsten Unterschiede zwischen React 18 und React 19?
Antworten:
React 19 baut auf der Grundlage der Parallelverarbeitung von React 18 auf und bietet bedeutende neue Funktionen.
| Merkmal | Reaktion 18 | Reaktion 19 |
|---|---|---|
| Gleichzeitiges Rendern | Eingefรผhrt | Verbesserte Spannung |
| Serverkomponenten | Experimentell | Stabilisiert und integriert |
| Aktionen-API | Nicht verfรผgbar | Neuer Standard fรผr die Verarbeitung von Formularaktionen |
| Laden von Assets | Handbuch | Automatisches Laden von Ressourcen |
| Verbesserte Fehlerbehandlung | Grundlagen | Granular mit Randhaken |
Vorteile :
React 19 konzentriert sich auf einfachere Datenmutationen, integrierte Formularaktionenund verbesserte asynchrone Steuerungwodurch SSR und progressive Hydratation nahtloser werden.
37) Wie funktioniert Micro-Frontend? ArchiWie lรคsst sich tecture mit React integrieren, und welche Vorteile bietet das?
Antworten:
Mikro-Frontends zerlegen eine groรe Webanwendung in unabhรคngige, bereitstellbare Frontend-Module. In einem React-รkosystem ist jedes Mikro-Frontend eine eigenstรคndige Anwendung, die รผber โฆ integriert werden kann. Modulfรถderation, iframesden benutzerdefinierte Laufzeitlader.
Vorteile:
- Unabhรคngige Bereitstellung und Skalierung.
- Teamautonomie รผber verschiedene Technologie-Stacks hinweg.
- Schnellere Build-Pipelines.
Ejemplo:
Die Verwendung von Fรถderation des Webpack-ModulsTeams kรถnnen React-Komponenten dynamisch รผber verschiedene Apps hinweg bereitstellen:
exposes: { './NavBar': './src/NavBar' }
Nachteile:
- Komplexitรคt der gemeinsamen Zustandsverwaltung.
- Leistungsmehraufwand durch isolierte Bรผndel.
38) Welche Faktoren berรผcksichtigen Sie bei der Skalierung einer React-Anwendung im Produktionsbetrieb?
Antworten:
Die Skalierung von React-Anwendungen erfordert technische, architektonische und betriebliche รberlegungen.
Schlรผsselfaktoren:
- Codestruktur โ Einfรผhrung von Monorepos (Nx/Turborepo) fรผr modulares Code-Sharing.
- Staatliche Verwaltung โ Segmentierung lokaler vs. globaler vs. Serverzustรคnde.
- Leistung โ Lazy Loading, Memoization, CDN-Caching.
- รberwachung โ Verwenden Sie Sentry, Datadog oder LogRocket fรผr Fehler und Metriken.
- Testen & CI/CD โ automatisierte Pipelines und visuelle Regressionstests.
Ejemplo:
Eine groรe E-Commerce-Plattform skaliert React-Apps mithilfe von Next.js fรผr SSR, Redux Toolkit fรผr einen vorhersagbaren Zustand und Micro-Frontends fรผr isolierte Branchen.
39) Wie testet man React-Komponenten, die asynchrones Verhalten verwenden?
Antworten:
Das Testen asynchroner React-Komponenten erfordert eine Synchronisierung zwischen dem Test-Runner und den Statusaktualisierungen der Komponente.
Best Practices:
- Arbeiten jederzeit weiterbearbeiten kรถnnen. Jede Prรคsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen,
waitFororfindBy*Abfragen in der React Testing Library. - Simulieren Sie Fetch-Aufrufe oder APIs mithilfe von
msw. - Bevorzugen gefรคlschte Timer (
jest.useFakeTimers()) fรผr zeitbasierte Effekte.
Ejemplo:
test('loads and displays data', async () => {
render(<UserList />);
expect(await screen.findByText('Alice')).toBeInTheDocument();
});
Dadurch wird sichergestellt, dass der Test auf die asynchronen Aktualisierungen von React wartet, bevor er Zusicherungen ausfรผhrt.
40) Erlรคutern Sie, wie Sie eine groร angelegte, wartungsfreundliche React-Projektstruktur entwerfen wรผrden.
Antworten:
Ein skalierbares React-Projekt muss Modularitรคt, Klarheit und Teamzusammenarbeit in Einklang bringen.
Empfohlene Ordnerstruktur:
src/ โโโ components/ # Reusable UI elements โโโ features/ # Feature-specific modules โโโ hooks/ # Custom reusable hooks โโโ context/ # Global providers โโโ pages/ # Route-level views โโโ services/ # API and utilities โโโ assets/ # Static resources โโโ tests/ # Unit & integration tests โโโ index.js
Best Practices:
- Verwenden Sie absolute Importe mit Pfadaliasen.
- Strenge Linting-Richtlinien einhalten (ESLint + Prettier).
- Arbeiten jederzeit weiterbearbeiten kรถnnen. Jede Prรคsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen, TypeScript aus Grรผnden der Typsicherheit.
- Komponentengrenzen durch atomares Design oder merkmalsbasiertes Slicing durchsetzen.
Ejemplo:
In einer realen Umgebung kรถnnte ein โBenutzerโ-Feature Folgendes umfassen: UserSlice.js, UserAPI.js, UserCard.jsxund User.test.js, alles innerhalb src/features/user/.
๐ Die wichtigsten React.js-Interviewfragen mit realen Szenarien und strategischen Antworten
1) Was sind die wichtigsten Unterschiede zwischen funktionalen und Klassenkomponenten in React.js?
Vom Kandidaten erwartet: Der Interviewer mรถchte Ihr Verstรคndnis der React-Komponentenarchitektur und moderner Best Practices testen.
Beispielantwort:
โFunktionale Komponenten sind einfacher und verwenden Hooks zur Verwaltung von Zustand und Lebenszyklusmethoden, wรคhrend Klassenkomponenten โฆ verwenden.โ this und Lebenszyklusmethoden wie componentDidMountFunktionale Komponenten werden heutzutage im Allgemeinen bevorzugt, da sie saubereren Code fรถrdern, einfacher zu testen sind und dank Optimierungen im Rendering-Prozess von React eine bessere Leistung erbringen.โ
2) Kรถnnen Sie erklรคren, wie das virtuelle DOM in React funktioniert?
Vom Kandidaten erwartet: Der Interviewer mรถchte Ihr Verstรคndnis des zentralen Performance-Mechanismus von React beurteilen.
Beispielantwort:
โDas virtuelle DOM ist eine Reprรคsentation des realen DOM im Arbeitsspeicher. Wenn sich der Zustand einer Komponente รคndert, aktualisiert React zunรคchst das virtuelle DOM, vergleicht es mit der vorherigen Version mithilfe eines Prozesses namens โDiffingโ und aktualisiert dann nur die geรคnderten Teile des realen DOM. Dieser Ansatz verbessert die Performance, indem die direkte DOM-Manipulation minimiert wird.โ
3) Wie verwaltet man den Zustand in einer groร angelegten React-Anwendung?
Vom Kandidaten erwartet: Der Interviewer mรถchte mehr รผber Ihre Erfahrungen mit Techniken und Instrumenten des staatlichen Managements erfahren.
Beispielantwort:
โIn groรen Anwendungen verwende ich typischerweise zentralisierte Zustandsverwaltungsbibliotheken wie Redux oder Zustand. Redux bietet einen vorhersehbaren Datenfluss und erleichtert das Debuggen durch Time-Travel-Debugging-Tools. Bei einfacheren Anwendungen bevorzuge ich die Context API und Hooks, um unnรถtige Komplexitรคt zu vermeiden.โ
4) Beschreiben Sie eine Situation, in der Sie die Performance von React optimiert haben.
Vom Kandidaten erwartet: Der Interviewer mรถchte Ihre praktischen Erfahrungen mit Leistungsoptimierung verstehen.
Beispielantwort:
โIn meiner vorherigen Position wurde unsere Anwendung aufgrund unnรถtiger Zustandsรคnderungen รผbermรครig oft neu gerendert. Ich habe โฆโ React.memo und der useCallback Um unnรถtige Neuzeichnungen zu verhindern, habe ich einen Hook implementiert. Auรerdem habe ich die Performance mithilfe des React Profilers analysiert und Komponenten identifiziert, die Memoization benรถtigten, wodurch die Rendering-Zeit um fast 30 % reduziert wurde.โ
5) Wie geht man in React mit Seiteneffekten um?
Vom Kandidaten erwartet: Der Interviewer mรถchte Ihr Verstรคndnis von Hooks und Lebenszyklusmanagement beurteilen.
Beispielantwort:
โIch behandle Nebenwirkungen wie API-Aufrufe oder DOM-Manipulationen mithilfe von โฆโ useEffect Der Hook ermรถglicht es mir, Abhรคngigkeiten festzulegen und so sicherzustellen, dass der Effekt nur dann ausgefรผhrt wird, wenn sich diese Abhรคngigkeiten รคndern. Dies trรคgt zu einem vorhersehbaren Verhalten bei und verhindert Endlosschleifen.
6) Erzรคhlen Sie mir von einem kniffligen Fehler, mit dem Sie in einem React-Projekt konfrontiert waren, und wie Sie ihn behoben haben.
Vom Kandidaten erwartet: Der Interviewer mรถchte Ihre Problemlรถsungs- und Debugging-Fรคhigkeiten beurteilen.
Beispielantwort:
โIn einer frรผheren Position stieร ich auf einen Fehler, bei dem Statusaktualisierungen nicht in der Benutzeroberflรคche angezeigt wurden. Nach eingehender Untersuchung stellte ich fest, dass das Problem durch die direkte รnderung des Statusobjekts anstatt durch das Erstellen einer neuen Kopie verursacht wurde. Ich habe den Code so umstrukturiert, dass unverรคnderliche Aktualisierungen verwendet werden, wodurch das Problem behoben und die Datenkonsistenz verbessert wurde.โ
7) Wie handhabt man die Formularvalidierung in React-Anwendungen?
Vom Kandidaten erwartet: Der Interviewer mรถchte herausfinden, ob Sie verstehen, wie man die Validierung von Benutzereingaben implementiert.
Beispielantwort:
โIch verwende รผblicherweise kontrollierte Komponenten zur Verwaltung von Formulareingaben, kombiniert mit Bibliotheken wie Formik oder React Hook Form zur Validierung. Diese Tools vereinfachen die Fehlerbehandlung, die Verwaltung des Formularstatus und die Integration mit Validierungsbibliotheken von Drittanbietern wie Yup.โ
8) Beschreiben Sie eine Situation, in der Sie bei der Arbeit an einem React-Projekt mit Backend-Entwicklern zusammenarbeiten mussten.
Vom Kandidaten erwartet: Der Interviewer mรถchte Ihre Teamfรคhigkeit und Ihre Kommunikationsfรคhigkeiten beurteilen.
Beispielantwort:
โIn meiner letzten Position habe ich eng mit Backend-Entwicklern zusammengearbeitet, um REST-APIs fรผr eine Dashboard-Anwendung zu entwerfen. Wir haben uns bereits in frรผhen Entwicklungsphasen auf Datenformate und Endpunkte geeinigt. Auรerdem habe ich Testantworten erstellt, um die Frontend-Entwicklung fortzusetzen, wรคhrend das Backend erstellt wurde, und so eine reibungslose Integration spรคter zu gewรคhrleisten.โ
9) Wie stellen Sie sicher, dass Ihre React-Komponenten wiederverwendbar und wartbar sind?
Vom Kandidaten erwartet: Der Interviewer mรถchte mehr รผber Ihre Herangehensweise an Komponentendesign und Skalierbarkeit erfahren.
Beispielantwort:
โIch verfolge den Grundsatz, kleine, fokussierte Komponenten zu entwickeln, die jeweils eine Aufgabe erfรผllen. Zudem nutze ich Props fรผr mehr Flexibilitรคt und setze auf modulares Styling mit CSS-in-JS oder Styled Components. Dadurch wird sichergestellt, dass die Komponenten im gesamten Projekt leicht wiederverwendet und gewartet werden kรถnnen.โ
10) Wie bleiben Sie รผber die neuesten Trends und Best Practices von React.js auf dem Laufenden?
Vom Kandidaten erwartet: Der Interviewer mรถchte Ihr Engagement fรผr kontinuierliches Lernen beurteilen.
Beispielantwort:
โIch halte mich auf dem Laufenden, indem ich die offizielle React-Dokumentation und Community-Blogs verfolge. Auรerdem schaue ich mir Vortrรคge von React-Konferenzen wie der React Conf an und hรถre Podcasts wie den โReact Podcastโ. Diese Ressourcen helfen mir, รผber neue Funktionen wie Concurrent Rendering und Server Components informiert zu bleiben.โ
