Back to Developer

React

React-intervjufrågor — grundläggande koncept, hooks, rendering och prestanda samt state-hantering och ekosystem.

Grunder

Vad är React?
Ett JavaScript-bibliotek för att bygga användargränssnitt baserade på komponenter.
Vad är Virtual DOM?
En lättviktig representation av det riktiga DOM i minnet, som används för att optimera uppdateringar.
Vad är JSX?
En syntaxtillägg för JavaScript som gör det möjligt att skriva HTML-liknande kod i JS.
State vs Props
State är internt och hanteras inom komponenten; Props är externa och skickas från en förälder.
Klasskomponenter vs Funktionella komponenter
Funktionella komponenter är enkla JS-funktioner; klasskomponenter använder ES6-klasser och har livscykelmetoder.
Varför behövs key-propen i listor?
Den hjälper React att identifiera vilka objekt som har ändrats, lagts till eller tagits bort för effektiv rendering.
Vad är ett React Fragment?
En syntax (<>...</>) för att gruppera flera element utan att lägga till extra noder i DOM.
Vad är en Higher-Order Component (HOC)?
En funktion som tar emot en komponent och returnerar en ny komponent med ytterligare logik.
Vad är Reconciliation?
Algoritmen som React använder för att jämföra virtual DOM och tillämpa endast nödvändiga uppdateringar.
Vad är StrictMode?
Ett verktyg för att lyfta fram potentiella problem i en applikation under utveckling.
Element vs Component
Ett Element är ett vanligt objekt som beskriver ett UI; ett Component är funktionen/klassen som returnerar det.
Fördelar med React
Komponentbaserad arkitektur, stort ekosystem, SEO-vänligt (med SSR) och hög prestanda.
Komposition vs Arv
React uppmuntrar att använda komposition (nästlade komponenter) framför arv för att återanvända kod.
Vad är React Fiber?
Den nuvarande reconciliation-motorn, utformad för att förbättra flödet och stödja inkrementell rendering.
Vad är React och varför används det?
Ett UI-bibliotek fokuserat på deklarativa vyer, återanvändning av komponenter och effektiv rendering via Virtual DOM.
Varför är keys viktiga i listor?
De hjälper React att effektivt spåra elementens identitet.
Varför ska man inte använda arrayindex som key?
Det bryter reconciliation-algoritmen när listans ordning förändras.
Vad är komplexiteten hos reconciliation-algoritmen?
O(n) med heuristik som använder keys.

Hooks

Vad är Hooks?
Funktioner som låter dig använda state och andra React-funktioner i funktionella komponenter.
Syftet med useEffect
Används för sidoeffekter som datahämtning, prenumerationer eller manuella DOM-manipulationer.
Vad gör useState?
Deklarerar en state-variabel som React bevarar mellan re-renders.
useEffect vs useLayoutEffect
useEffect körs efter att sidan ritats; useLayoutEffect körs synkront innan sidan ritats.
Vad är useMemo?
En hook som memoizar resultatet av en kostsam beräkning för att undvika onödig omberäkning.
Vad är useCallback?
En hook som memoizar en funktionsinstans för att förhindra att den återskapas vid varje render.
Vad är useRef?
Skapar en beständig referens som inte utlöser en re-render när dess värde ändras.
Vad är useContext?
Ger åtkomst till global data (som teman eller användare) utan manuell prop drilling.
Syftet med useReducer
Ett alternativ till useState för komplex tillståndslogik, liknande Redux-mönstret.
Regler för Hooks
1. Anropa dem bara på toppnivån. 2. Anropa dem bara från React-funktioner eller custom hooks.
Vad är en Custom Hook?
En JS-funktion som börjar med "use" och kan anropa andra hooks för att återanvända tillståndsfull logik.
Vad är forwardRef?
En teknik för att automatiskt skicka en ref genom en komponent till ett barn.
Vad är useId?
En hook för att generera unika ID:n som är stabila mellan server och klient.
Livscykel: Montering
constructor, render, componentDidMount (Klass); useEffect med [] (Funktion).
Livscykel: Avmontering
componentWillUnmount (Klass); useEffect cleanup-funktion (Funktion).
Vad är useSyncExternalStore?
En hook för att prenumerera på externa stores (t.ex. webbläsar-APIs) på ett sätt som är säkert för concurrent rendering.
Vad är en sidoeffekt (Side Effect)?
En operation som påverkar något utanför scope för den funktion som körs (t.ex. API-anrop).
Vilka problem löser hooks?
De tar bort komplexiteten med klasser och möjliggör återanvändning av logik via custom hooks.
Hur fungerar dependency array?
Styr när effekter körs om baserat på ytlig jämförelse.
Vad är useReducer?
Ett alternativ till useState för komplex state-logik.
Hur hanterar man asynkrona effekter?
Använd useEffect med cleanup och abort controllers.
När ska man använda refs istället för state?
När ändringar inte ska trigga en re-render.

Rendering och prestanda

Hur optimerar man React-prestanda?
Använd React.memo, useMemo, useCallback, lazy loading och undvik anonyma funktioner i render.
Vad är React.memo?
En higher-order component som förhindrar att en funktionskomponent renderas om om props förblir desamma.
Vad händer under setState?
React schemalägger en uppdatering, slår ihop det nya tillståndet och triggar en omrendering av komponentträdet.
Varför ska man inte mutera state direkt?
React upptäcker ändringar via referens; att mutera det ursprungliga objektet förhindrar att en omrendering triggas.
Vad är en Pure Component?
En komponent som returnerar samma utdata för samma props och state, och hoppar över onödiga renderingar.
React 18 Batching
Reacts förmåga att gruppera flera state-uppdateringar i en enda re-render för bättre prestanda.
Vad orsakar re-renders?
State-ändringar, prop-ändringar eller context-uppdateringar.
Hur hanterar React immutabilitet?
Förlitar sig på referensändringar för att upptäcka uppdateringar.
Vad är Concurrent React?
Tillåter avbrytbar rendering för bättre UX.
Hur skiljer sig Suspense från useEffect?
Suspense hanterar asynkronitet på renderingsnivå.

State, dataflöde och ekosystem

Vad är Lifting State Up?
Att flytta state till den närmaste gemensamma förfadern för att dela data mellan syskonkomponenter.
Kontrollerade vs Okontrollerade komponenter
Kontrollerade komponenter hanterar formulärdata via state; okontrollerade använder DOM (via Refs).
Vad är Error Boundaries?
Klasskomponenter som fångar JS-fel i sitt barnträd och visar ett reservgränssnitt.
Vad är Prop Drilling?
Processen att skicka data genom flera nivåer av komponenter som inte behöver den.
React.lazy och Suspense
Används för code-splitting för att ladda komponenter endast när de behövs.
Hur hanterar man händelser i React?
React använder SyntheticEvents, som är cross-browser-omslag runt webbläsarens native-händelser.
Vad är Redux?
Ett externt bibliotek för global tillståndshantering som följer ett enkelriktat dataflöde.
Vad är Portals?
De ger ett sätt att rendera barn i en DOM-nod som finns utanför föräldrahierarkin.
Vad är Hydration?
Processen att koppla event listeners till server-renderad HTML för att göra den interaktiv.
Vad är CSS-in-JS?
En stilsättningsmetod där CSS skrivs med JS (t.ex. Styled Components) för lokal avgränsning.
Hur testar man React?
Vanligtvis testas det med Jest (test runner) och React Testing Library (UI-fokuserad testning).
Redux vs Context API
Context används för att skicka data; Redux är ett fullständigt state management-system med avancerade utvecklingsverktyg.
Vad är SSR?
Server-Side Rendering: renderar appen till HTML på servern för snabbare initial laddning och SEO.
Vad är Context API?
Ett sätt att skicka data utan prop drilling.
SSR vs CSR
SSR förbättrar initial laddning/SEO; CSR flyttar arbetet till klienten.
Vad är code splitting?
Att ladda kod på begäran för att minska bundelstorlek.
Vad är Flux-arkitekturen?
Ett mönster med enkelriktat dataflöde.
Hur strukturerar man stora React-appar?
Funktionsbaserade mappar, delade hooks, domänseparation.
Enhetstester vs integrationstester
Enhetstester isolerar logik; integrationstester verifierar interaktion.
Vad är syntetiska händelser?
React:s wrapper runt webbläsarens nativa händelser.
Hur hanterar man formulär i stor skala?
Kontrollerade inputs + valideringsbibliotek.
Säkerhetsproblem i React
XSS-förebyggande via escapning, undvik dangerouslySetInnerHTML.
Hur hanterar React XSS?
Escapar värden som standard.