40 najboljih pitanja i odgovora za intervju za React JS (2026.)
Pripremate se za intervju za React JS? Vrijeme je da istraลพite ลกto vas ฤeka. Razumijevanje Pitanja za intervju za React JS pomaลพe u otkrivanju vaลกe konceptualne jasnoฤe i snaga u implementaciji u stvarnom svijetu.
React JS nudi ogromne moguฤnosti karijere za profesionalce s tehniฤkim iskustvom i struฤnoลกฤu u odreฤenoj domeni. Bez obzira jeste li student prve ili zavrลกne godine s 5 ili 10 godina profesionalnog iskustva, vjeลกtine analiziranja i tehniฤka struฤnost su vaลพne. Ova pitanja i odgovori pomaลพu voditeljima timova, menadลพerima i programerima da usavrลกe svoje vjeลกtine i proฤu najbolje intervjue.
Na temelju uvida viลกe od 85 struฤnjaka, ukljuฤujuฤi voditelje zapoลกljavanja i tehniฤke voditelje, ova kompilacija odraลพava razliฤita oฤekivanja industrije i stvarne obrasce intervjua prikupljene od radnih timova u razliฤitim podruฤjima.

Najฤeลกฤa pitanja i odgovori za intervju za React JS
1) Objasnite virtualni DOM i kako usklaฤivanje funkcionira u Reactu.
Odgovor:
Virtualni DOM je memorijski prikaz korisniฤkog suฤelja koji React odrลพava kako bi uฤinkovito izraฤunao promjene korisniฤkog suฤelja. Kada se stanje ili svojstva promijene, React renderira novo stablo virtualnog DOM-a, a zatim pokreฤe razlikovanje algoritam u odnosu na prethodno stablo kako bi se otkrio minimalni skup potrebnih stvarnih DOM operacija. Ovaj proces, nazvan izmirenje, minimizira preklapanje izgleda i skupe promjene rasporeda u pregledniku. React dodjeljuje Tipke elementima u popisima kako bi mu pomogao u usklaฤivanju ฤvorova tijekom renderiranja, a koristi i heuristike (poput usporedbe tipova i kljuฤeva) kako bi odluฤio hoฤe li aลพurirati, promijeniti redoslijed ili ukloniti ฤvorove. Prednosti ukljuฤuju predvidljiva aลพuriranja, manju povrลกinu za greลกke i bolje performanse u sloลพenim korisniฤkim suฤeljima.
Primjer:
Iskazivanje dinamiฤkog popisa poruka u chatu: koriลกtenjem stablea key vrijednosti (ID-ovi poruka), samo se nove poruke dodaju DOM-u dok postojeฤi ฤvorovi ostaju netaknuti, ฤime se izbjegavaju nepotrebna ponovna renderiranja.
๐ Besplatno preuzimanje PDF-a: Pitanja i odgovori za intervju za React JS
2) Koje su razliฤite vrste ลพivotnih ciklusa komponenti u Reactu i kako se Hookovi mapiraju na njih?
Odgovor:
React komponente prolaze kroz faze montiranja, aลพuriranja i demontiranja. U komponentama klase, metode ลพivotnog ciklusa kao ลกto su componentDidMount, shouldComponentUpdate, componentDidUpdatei componentWillUnmount upravljaju nuspojavama, odlukama o renderiranju i ฤiลกฤenjem. U funkcijskim komponentama, kuke pruลพaju ekvivalentne moguฤnosti: useEffect obraฤuje efekte nakon renderiranja; funkcije ฤiลกฤenja unutra useEffect izvodi se pri odmontiranju ili prije sljedeฤeg efekta; useMemo i useCallback kontrolirati memoizaciju; i useRef zadrลพava promjenjive reference kroz renderiranje. Prednosti Hookova ukljuฤuju kompozibilnost, manje problema s "this" vezanjem i lakลกu ponovnu upotrebu logike putem prilagoฤenih hookova, dok je glavni nedostatak potreba za uฤenjem pravila Hookova i upravljanja ovisnostima.
Odgovorite s primjerima:
- Uฤinak montaลพe:
useEffect(() => fetchData(), []). - ฤiลกฤenje prilikom odspajanja:
useEffect(() => { start(); return stop; }, []).
3) Kako se odluฤujete izmeฤu renderiranja na strani klijenta (CSR), renderiranja na strani posluลพitelja (SSR), generiranja statiฤke stranice (SSG) i inkrementalne statiฤke regeneracije (ISR) za React aplikaciju?
Odgovor:
Strategija renderiranja trebala bi biti voฤena zahtjevima korisniฤkog iskustva, svjeลพinom podataka, SEO potrebama, ograniฤenjima infrastrukture i brzinom razvoja. DOP odgovara visoko interaktivnim aplikacijama iza autentifikacije gdje je SEO sekundarni. SSR pruลพa prvo iscrtavanje sa stvarnim podacima za javne stranice, poboljลกavajuฤi vrijeme do prvog bajta i SEO, ali uz veฤe troลกkove posluลพitelja. SSG unaprijed izraฤunava stranice tijekom izrade za izvrsnu brzinu i predmemoriranje kada se podaci rijetko mijenjaju. ISR aลพurira statiฤke stranice postupno na zahtjev, nudeฤi ravnoteลพu svjeลพine i performansi. ฤimbenici ukljuฤuju moguฤnost predmemoriranja, personalizaciju, latenciju za globalnu publiku i operativnu sloลพenost.
Tablica: Prednosti u odnosu na nedostatke
| Pristup | Prednosti | Nedostaci |
|---|---|---|
| DOP | Jednostavan hosting, bogata interaktivnost | Sporije prvo iscrtavanje, slabiji SEO |
| SSR | Odliฤan SEO, svjeลพi podaci pri prvom uฤitavanju | Veฤe optereฤenje servera, sloลพenost |
| SSG | Brzo, jeftino, prilagoฤeno CDN-u | Zastarjeli sadrลพaj do ponovne izrade |
| ISR | Brzo s kontroliranom svjeลพinom | Viลกe pokretnih dijelova za upravljanje |
4) Koju strategiju upravljanja stanjem treba koristiti: lokalno stanje, kontekst, Redux ili biblioteke upita?
Odgovor:
Odaberite najjednostavniji alat koji obraฤuje karakteristike problema. Stanje komponente lokalno putem useState or useReducer idealan je za izolirane probleme s korisniฤkim suฤeljem. Kontekst Radi uglavnom za vrijednosti za ฤitanje, koje se odnose na cijelu aplikaciju (tema, lokalizacija, trenutni korisnik), ali nije optimiziran za aลพuriranja visoke uฤestalosti na velikim stablima. Redux ili sliฤne pohrane temeljene na dogaฤajima izvrsne su kada vam je potrebna predvidljivost, otklanjanje pogreลกaka u vremenu, middleware i strogi jednosmjerni tokovi podataka. Biblioteke za dohvaฤanje podataka (na primjer, obrasci u stilu React Queryja) upravljaju ลพivotnim ciklusima stanja posluลพitelja - predmemoriranjem, uklanjanjem duplikata, strategijama ponovnog dohvaฤanja i sinkronizacijom - smanjujuฤi standardne standarde. Pragmatiฤna arhitektura ฤesto koristi lokalno stanje + kontekst za konfiguraciju + biblioteka stanja posluลพitelja, rezervirajuฤi Redux za sloลพene tijekove rada.
Primjer:
Nadzorna ploฤa koristi React Query za API keลกiranje, Context za temu i useReducer unutar sloลพenih widgeta za lokalnu obradu dogaฤaja.
5) Koja je razlika izmeฤu useEffect i useLayoutEffect i kada se svaki od njih primjenjuje?
Odgovor:
useEffect pokreฤe se nakon ลกto preglednik zavrลกi s iscrtavanjem, ลกto ga ฤini prikladnim za zadatke koji ne blokiraju, kao ลกto su dohvaฤanje podataka, pretplate i biljeลพenje. useLayoutEffect izvrลกava sinkrono nakon DOM mutacija, ali prije bojenja, ลกto omoguฤuje mjerenje i prilagodbe rasporeda koje se moraju odvijati bez treperenja (na primjer, oฤitavanje veliฤina elemenata i sinkrona ponovna primjena stilova). Nedostatak useLayoutEffect jest da moลพe blokirati slikanje i naลกtetiti odzivu ako se prekomjerno koristi. Dobro je pravilo zapoฤeti s useEffect za nuspojave i posegnite za useLayoutEffect samo kada morate izmjeriti ili sinkrono mutirati raspored kako biste osigurali vizualnu ispravnost.
Odgovorite s primjerima:
useEffect: dohvati korisniฤki profil nakon renderiranja.useLayoutEffect: izmjerite veliฤinu opisa alata kako biste ga pozicionirali prije bojanja.
Brza usporedba
| svojstvo | useEffect | useLayoutEffect |
|---|---|---|
| Termin | Nakon boje | Prije bojanja |
| Upotrijebite sluฤaj | Podaci, pretplate | Mjerenja, sinkroni popravci rasporeda |
| Rizik | Manji trzaj ako je jak | Blokira boju ako je teลกka |
6) Objasnite kako kljuฤevi funkcioniraju u listama i zamke koriลกtenja indeksa nizova.
Odgovor:
Kljuฤevi omoguฤuju Reactovom usklaฤivanju da toฤno identificira stavke popisa izmeฤu renderiranja. Stabilni, jedinstveni kljuฤevi omoguฤuju Reactu promjenu redoslijeda, umetanje ili uklanjanje stavki uz minimalnu promjenu DOM-a. Koriลกtenje indeksi polja Upotreba kljuฤeva je problematiฤna kada se stavke mogu preureฤivati, umetati ili brisati jer React moลพe povezati prethodno stanje s pogreลกnim elementom, uzrokujuฤi suptilne greลกke (na primjer, netoฤne ulazne vrijednosti ili animacije). Najbolja praksa je koriลกtenje nepromjenjivog identifikatora specifiฤnog za domenu, kao ลกto je ID baze podataka. Ako je popis zaista statiฤan i nikada se ne preureฤiva, indeksi su prihvatljivi, ali ovo je iznimka, a ne pravilo.
Primjer:
Kanban ploฤa koja se moลพe povlaฤiti trebala bi koristiti ID-ove kartica, a ne indekse, kako bi se saฤuvao identitet komponenti tijekom povlaฤenja i ispuลกtanja.
7) Gdje se tehnike memoizacije primjenjuju u Reactu i koje su njihove prednosti i nedostaci?
Odgovor:
Memoizacija smanjuje nepotrebna izraฤunavanja i ponovno renderiranje ponovnom upotrebom prethodnih rezultata kada se unosi nisu promijenili. U Reactu, React.memo keลกira izlaz komponenti, useMemo keลกira skupe izraฤune i useCallback Memorira identitete funkcija proslijeฤene djeci. Glavne prednosti su stabilnost performansi i smanjena upotreba CPU-a pri intenzivnoj interakciji. Nedostaci ukljuฤuju sloลพenost, potencijalne greลกke zastarjele predmemorije ako su ovisnosti pogreลกne i memorijsko optereฤenje.
Tablica: Razliฤiti naฤini pamฤenja
| Tip | Svrha | Tipiฤni ฤimbenici koje treba uzeti u obzir |
|---|---|---|
React.memo(Component) |
Preskoฤi ponovno renderiranje ako su propsi shallow-equal | Volatilnost propiona, troลกak djeteta |
useMemo(fn, deps) |
Vrijednosti izraฤunate iz predmemorije | Cijena raฤunanja u odnosu na memoriju |
useCallback(fn, deps) |
Identitet stabilne funkcije | Ispravnost ovisnosti |
Odgovorite s primjerima:
Memoizirajte filtrirani, sortirani skup podataka za mreลพu pomoฤu useMemoi omotajte komponente renderera ฤelija s React.memo kako bi se izbjeglo ponovno renderiranje oluja.
8) Preferirate li kontrolirane ili nekontrolirane komponente za obrasce? Raspravite o prednostima, nedostacima i vrstama stanja obrasca.
Odgovor:
Kontrolirane komponente vezanje ulaza na React stanje putem value i onChange, ลกto omoguฤuje validaciju, maskiranje i uvjetno korisniฤko suฤelje izvedeno iz jednog izvora istine. Prednosti su predvidljivost i jednostavna integracija s drugim stanjima; nedostaci ukljuฤuju troลกkove ponovnog renderiranja pri svakom pritisku tipke bez optimizacije. Nekontrolirane komponente oslanjaju se na DOM kao izvor istine koriลกtenjem referenci, nudeฤi niลพe optereฤenje i jednostavnije povezivanje za osnovne obrasce, ali manje centraliziranu validaciju. Za sloลพene tijekove rada uobiฤajen je hibridni uzorak, koji koristi kontrolirane ulaze za kritiฤna polja i nekontrolirane za velika podruฤja s puno teksta.
Primjer:
Obrazac za prijavu koristi kontrolirana polja za provjeru e-poลกte i lozinke, dok je tekstualno podruฤje za biljeลกke nekontrolirano kako bi se smanjilo optereฤenje ponovnog renderiranja.
9) Kada biste koristili kontekst u odnosu na prilagoฤenu udicu i koja je konceptualna razlika izmeฤu njih?
Odgovor:
Kontekst je transportni mehanizam za vrijednosti koje su potrebne mnogim komponentama, izbjegavajuฤi buลกenje prop-a. Ne upravlja stanjem samostalno; jednostavno ga izlaลพe potomcima. A prilagoฤena kuka enkapsulira logiku za viลกekratnu upotrebu - kombinirajuฤi stanje, efekte i vanjske usluge - vraฤajuฤi vrijednosti i funkcije. Koristite kontekst za pruลพanje dijeljene konfiguracije za ฤitanje ili za izlaganje trgovine te koristite prilagoฤene kuke za implementaciju ponaลกanja trgovine ili za orkestriranje problema kao ลกto su autentifikacija, zastavice znaฤajki ili pravila dohvaฤanja podataka. To dvoje se nadopunjuje: uobiฤajeni obrazac je useAuth() kao prilagoฤena kuka potkrijepljena AuthContext.
Odgovorite s primjerima:
AuthProvider dostavlja korisnika i tokene putem konteksta; useAuth obraฤuje nuspojave prijave, osvjeลพavanja i odjave.
10) Moลพete li navesti strategije podeลกavanja performansi za velike React aplikacije, ukljuฤujuฤi karakteristike sporih renderiranja i vruฤih toฤaka ลพivotnog ciklusa?
Odgovor:
Podeลกavanje performansi zapoฤinje mjerenjem. Identificirajte spore putanje pomoฤu React DevTools Profilera i panela performansi preglednika kako biste locirali ลพariลกta usklaฤivanja i skupe commit-ove. Taktike ukljuฤuju drลพavna lokacija (drลพati drลพavu blizu svojih potroลกaฤa), memoizacija (React.memo, useMemo, useCallback), virtualizacija popisa za duge popise, dijeljenje koda s lijenim uฤitavanjem kako bi se smanjio poฤetni paket i odbijanje ili guลกenje dogaฤaji visoke uฤestalosti. Za podatke podrลพane od strane posluลพitelja, usvojite predmemoriranje s bibliotekom upita i iskoristite napeto obrasce za glatkije uฤitavanje. Pripazite na vruฤe toฤke ลพivotnog ciklusa kao ลกto su efekti koji se preฤesto izvode zbog ลกirokih nizova ovisnosti ili komponente koje se ponovno renderiraju zbog ฤesto promjenjivih vrijednosti konteksta.
Odgovorite s primjerima:
Virtualizirajte tablicu od 10 000 redaka pomoฤu biblioteke za rad s prozorima; odgoฤeno uฤitavanje teลกkih grafikona iza podjele koda temeljene na rutama radi poboljลกanja poฤetnog ispisa.
11) Koja je razlika izmeฤu propsa i stanja u Reactu?
Odgovor:
Oboje props i state utjeฤu na naฤin prikaza komponenti, ali njihova svrha i ลพivotni ciklus se temeljno razlikuju. rekviziti (skraฤeno od svojstva) su nepromjenjivi ulazi koji se prenose s roditeljske na podreฤenu komponentu, definirajuฤi konfiguraciju ili podatke za renderiranje. Oni teku silazni u Reactovom jednosmjernom toku podataka i nikada ga ne bi smjela mijenjati prijemna komponenta. DrลพavaS druge strane, je promjenjiv i odrลพava se interno od strane komponente. Odreฤuje dinamiฤko ponaลกanje koje se mijenja tijekom vremena, kao ลกto su vrijednosti unosa u obrazac ili promjenjiva vidljivost.
Tablica kljuฤnih razlika:
| Faktor | rekviziti | Drลพava |
|---|---|---|
| Promjenjivost | nepromjenljiv | promjenljiv |
| Svojina | Proลกao roditelj | U vlasniลกtvu komponente |
| Metoda aลพuriranja | Nadreฤeni ponovno renderira | useState or setState |
| Koristite sluฤaj | konfiguracija | Dinamiฤke promjene korisniฤkog suฤelja |
| ลฝivotni ciklus | Postoji tijekom renderiranja | Traje, pokreฤe ponovno renderiranje |
Primjer:
A <Button color="blue" /> koristi rekvizite za odreฤivanje boje, dok clicked boolean u svom stanju prebacuje vizualnu povratnu informaciju.
12) Objasnite obrazac arhitekture komponenti u Reactu i razliฤite naฤine klasifikacije komponenti.
Odgovor:
React aplikacije slijede arhitektura temeljena na komponentama, razbijanjem korisniฤkog suฤelja u male, ponovno koriลกtene gradivne blokove. Komponente se mogu kategorizirati prema njihovim svrha i Odgovornost:
- Prezentacijske (glupe) komponente โ Fokus na korisniฤko suฤelje, primanje podataka putem propsova i rijetko upravljanje stanjem.
- Komponente kontejnera (pametne) โ Obraฤuju logiku, dohvaฤaju podatke i upravljaju stanjem; prikazuju prezentacijske komponente.
- Komponente viลกeg reda (HOC) โ Funkcije koje uzimaju komponentu i vraฤaju poboljลกanu verziju s dodatnim ponaลกanjem.
- ฤiste komponente โ Optimizirajte performanse plitkom usporedbom propsa i stanja.
- Funkcionalne vs. klasne komponente โ Funkcionalne komponente (s hookovima) sada su poลพeljnije zbog ฤitljivosti i performansi.
Primjer:
A <UserProfile /> komponenta moลพe biti prezentacijska, primati korisniฤke informacije, dok <UserProfileContainer /> dohvaฤa podatke i upravlja njihovim ลพivotnim ciklusom.
13) Kako React rjeลกava granice pogreลกaka i zaลกto su one vaลพne?
Odgovor:
Granice pogreลกaka su posebne React komponente koje hvataju JavaPogreลกke skripte bilo gdje u stablu njihovih podkomponenti tijekom renderiranja, metoda ลพivotnog ciklusa ili konstruktora. Sprjeฤavaju potpuna ruลกenja aplikacije izoliranjem kvarova na odreฤena podstabla. Moลพete implementirati jedno pomoฤu componentDidCatch(error, info) i static getDerivedStateFromError() u komponenti klase.
Prednosti:
- Oฤuvajte stabilnost korisniฤkog suฤelja prikazivanjem rezervnih korisniฤkih suฤelja.
- Zabiljeลพite i evidentirajte pogreลกke za analitiku.
- Sprijeฤite kaskadno odspajanje.
Primjer:
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) ล to su React fragmenti i kako se razlikuju od wrappera elementi?
Odgovor:
Reagovati fragmenti (<></>) omoguฤuju vam grupiranje viลกe elemenata bez dodavanja dodatnih ฤvorova u DOM. To je bitno za ฤistiju strukturu, posebno u popisima, tablicama i semantiฤkom HTML-u gdje dodatni omotaฤi mogu uzrokovati probleme s rasporedom ili pristupaฤnoลกฤu. Za razliku od omotaฤa <div>Fragmenti se ne prikazuju u DOM-u i stoga imaju prednosti u performansama i semantici.
Primjer:
return (
<>
<h1>Title</h1>
<p>Description</p>
</>
);
Tablica razlika:
| Faktor | fragment | <div> Omot |
|---|---|---|
| Izlaz DOM-a | nijedan | Dodaje dodatni ฤvor |
| Koristite sluฤaj | Strukturno grupiranje | Stilizacija ili izgled |
| Izvoฤenje | Bolje | Lagani nadzemni dio |
15) Koji React Hook biste koristili za optimizaciju performansi i zaลกto?
Odgovor:
React komponente osjetljive na performanse ฤesto se oslanjaju na kuke za memoizaciju i lijeno uฤitavanje kako bi se smanjio suviลกan rad. Uobiฤajene udice ukljuฤuju:
useMemoโ Sprema raฤunalno skupe rezultate u predmemoriju.useCallbackโ Sprjeฤava nepotrebna renderiranja djece zbog promjena identiteta funkcije.useTransitionโ Odgaฤa aลพuriranja koja nisu hitna radi glatkijeg korisniฤkog suฤelja.useDeferredValueโ Odgaฤa teลกke izraฤune do nakon neposrednih interakcija.
Primjer:
Velika podatkovna mreลพa koja koristi useMemo za filtrirane rezultate moลพe smanjiti potroลกnju CPU-a za 50% ili viลกe.
Prednosti:
- Smanjuje nepotrebne rendere.
- Odrลพava korisniฤko suฤelje responzivnim pod optereฤenjem.
Hendikep:
- Zahtijeva preciznost ovisnosti; ako se njima nepravilno upravlja, mogu se pojaviti greลกke u zastarjeloj predmemoriji.
16) ล to su React portali i koje su njihove prednosti?
Odgovor:
portali dopuลกta React komponentama da renderiraju djecu u DOM ฤvor izvan njihove roditeljske hijerarhije, obiฤno za modale, opise alata ili padajuฤe izbornike koji moraju vizualno "izbjeฤi" kontekste prelijevanja ili slaganja. Implementirano pomoฤu ReactDOM.createPortal(child, container), odrลพavaju konzistentnost mjehuriฤa dogaฤaja, pa rukovatelji dogaฤajima rade kao da je element ostao unutar svoje izvorne hijerarhije.
Tablica prednosti:
| Prednost | Description |
|---|---|
| Strukturna neovisnost | Renderiraj izvan roditeljskog stabla |
| CSS/Kontrola slaganja | Izbjeฤi overflow: hidden ili problemi s z-indexom |
| ล irenje dogaฤaja | Reactovi sintetiฤki dogaฤaji i dalje se ispravno prikazuju u mjehuriฤima |
| Reus Sposobnost | Idealno za globalne slojeve |
Primjer:
createPortal(<ModalContent />, document.getElementById('modal-root'));
17) Objasnite kako React Router upravlja navigacijom i stanjem izmeฤu stranica.
Odgovor:
React Router je deklarativna biblioteka za usmjeravanje koja sinkronizira korisniฤko suฤelje s URL-om preglednika. Koristi API za povijest manipulirati povijeลกฤu sesije bez ponovnog uฤitavanja cijele stranice. Osnovni koncepti ukljuฤuju Rute, linkovii Outlet za ugnijeลพฤeno usmjeravanje. Biblioteka podrลพava dinamiฤke rute, URL parametrii navigacijske kuke (useNavigate, useParams, useLocation). React Router v6 uveo je pojednostavljenu sintaksu i podatkovne API-je za utovarivaฤ i akcijski funkcije, poboljลกanje integracije SSR-a i upravljanja drลพavom.
Primjer:
<Route path="/user/:id" element={<UserProfile />} />
Prednosti:
- Omoguฤuje navigaciju po jednoj stranici.
- Odrลพava poloลพaj i povijest pomicanja.
- ฤisto se integrira s lijenim uฤitavanjem za bolje performanse.
18) Koji su razliฤiti naฤini rjeลกavanja nuspojava u React aplikacijama?
Odgovor:
Nuspojave se odnose na radnje koje utjeฤu na neลกto izvan opsega komponente (API pozivi, manipulacija DOM-om, pretplate). Glavni alati ukljuฤuju:
useEffectza efekte na strani klijenta nakon renderiranja.- Voditelji dogaฤaja za efekte koje pokreฤu korisnici.
- Kuke po narudลพbi ponovno upotrijebiti logiku efekata (na primjer
useFetch). - middleware (poput Redux Sage ili Thunka) za sloลพenu asinkronu orkestraciju.
- React Query ili SWR za automatsko upravljanje stanjem posluลพitelja i ลพivotnim ciklusima ponovnog uฤitavanja.
Primjer:
A useEffect dohvaฤa podatke jednom prilikom montiranja:
useEffect(() => { fetchData(); }, []);
Prednosti:
Pojednostavljeno upravljanje asinkronoลกฤu, bolja enkapsulacija i jasnija kontrola ลพivotnog ciklusa.
19) Je li React framework ili biblioteka? Raspravite o ฤimbenicima koji definiraju razliku.
Odgovor:
React je sluลพbeno knjiลพnica, nije potpuni okvir. Usredotoฤuje se iskljuฤivo na sloj prikaza, pruลพajuฤi apstrakcije renderiranja, stanja i komponenti bez prisiljavanja usmjeravanja, dohvaฤanja podataka ili strukture izgradnje.
Usporedna tablica:
| Faktor | Biblioteka (React) | Okvir (Angular, Vue) |
|---|---|---|
| Djelokrug | Prikaz renderiranja | Potpuna MVC arhitektura |
| Samouvjeren | Nizak | visok |
| kontrola | Voฤeno razvojnim programerima | Voฤeno okvirom |
| Fleksibilnost | visok | Ograniฤeno konvencijama |
| Krivulja ucenja | Umjereno | Veฤi zbog sloลพenosti |
React-ov ekosustav (Redux, Router, Query, Next.js) uฤinkovito tvori โmeta-okvirโ, nudeฤi modularnu kompozibilnost koja omoguฤuje programerima da izgrade vlastitu arhitekturu.
20) Kada biste trebali koristiti React.lazy i Suspense i koje su njihove prednosti?
Odgovor:
React.lazy omoguฤuje dijeljenje koda dinamiฤkim uฤitavanjem komponenti samo kada je to potrebno, dok Suspense pruลพa rezervno korisniฤko suฤelje dok komponenta ne bude spremna. Ova kombinacija poboljลกava poฤetne performanse uฤitavanja i korisniฤki percipiranu brzinu odziva.
Primjer:
const Chart = React.lazy(() => import('./Chart'));
<Suspense fallback={<Loader />}>
<Chart />
</Suspense>
Tablica prednosti:
| Prednost | Objaลกnjenje |
|---|---|
| Izvoฤenje | Uฤitava kod na zahtjev |
| Korisniฤko iskustvo | Elegantno uฤitavanje rezervnog sustava |
| Veliฤina paketa | Manji poฤetni paket |
| Jednostavnost | Native React API, minimalno podeลกavanje |
Najbolje prakse:
- Omotajte viลกe lijenih komponenti u jednu granicu Suspense-a.
- Koristite smislene rezervne pokazatelje za pristupaฤnost.
21) Objasnite ลกto su React Server Components (RSC) i koje su njihove prednosti.
Odgovor:
Komponente React Servera (RSC) su glavna inovacija uvedena kako bi se poboljลกale performanse i iskustvo programera omoguฤujuฤi komponentama da renderiraju na posluลพitelju bez slanja svojih JavaSkripta za klijentaIzvrลกavaju se u potpunosti na posluลพitelju, dohvaฤajuฤi podatke, ฤitajuฤi iz baza podataka ili sigurno izvodeฤi I/O operacije prije nego ลกto struje serijalizirani izlaz klijentu.
Prednosti:
- Manja veliฤina paketa โ Nema klijentskog JS-a za logiku samo za posluลพitelj.
- Poboljลกana izvedba โ Dohvaฤanje podataka sa strane posluลพitelja smanjuje vodopade.
- Sigurnost โ Osjetljivi kod nikada ne dolazi do preglednika.
- Bolje predmemoriranje โ Komponente posluลพitelja se mogu predmemorirati na rubu mreลพe.
Primjer:
A <ProductList /> Posluลพiteljska komponenta moลพe izravno dohvatiti podatke iz baze podataka i proslijediti rezultate <ProductCard /> klijentska komponenta.
22) Koja je razlika izmeฤu React hidratacije i pomirenja?
Odgovor:
Iako oba termina ukljuฤuju aลพuriranje korisniฤkog suฤelja putem Reacta, njihova svrha se razlikuje:
- izmirenje je proces usporedbe virtualnog DOM stabla s njegovom prethodnom verzijom kako bi se odredio minimalni skup DOM aลพuriranja.
- Hidratacija, s druge strane, je proces povezivanja Reactovih sluลกaฤa dogaฤaja i internih struktura s HTML prikazan na posluลพitelju na strani klijenta, pretvarajuฤi statiฤko oznaฤavanje u potpuno interaktivnu aplikaciju.
Usporedna tablica:
| Faktor | izmirenje | Hidratacija |
|---|---|---|
| Okidaฤ | Klijent ponovno renderira | Poฤetno uฤitavanje stranice (SSR) |
| Svrha | Uฤinkovito aลพurirajte DOM | Uฤinite SSR HTML interaktivnim |
| Djelokrug | Virtualno DOM razlikovanje | Povezivanje dogaฤaja + ponovno povezivanje stanja |
| Frekvencija | Viลกe puta | Nakon SSR renderiranja |
Primjer:
Nakon ลกto Next.js aplikacija poลกalje unaprijed renderirani HTML, React hidratima tako da komponente reagiraju na dogaฤaje bez ponovnog renderiranja svega.
23) Kako istodobno renderiranje poboljลกava korisniฤko iskustvo u Reactu 18+?
Odgovor:
Istovremeno renderiranje omoguฤuje Reactu prekid, pauziranje ili nastavak renderiranja na temelju prioriteta korisnika. To sprjeฤava zamrzavanje korisniฤkog suฤelja tijekom zahtjevnih izraฤuna ili ponovnog renderiranja. Znaฤajke kao ลกto su useTransition i useDeferredValue iskoristite ovu sposobnost za odvajanje hitna aลพuriranja (kao tipkanje) iz nije hitno one (poput filtriranja).
Prednosti:
- Glatke, responzivne interakcije.
- Vremensko rezanje kako bi se sprijeฤilo blokiranje glavne niti.
- Predvidljivo odreฤivanje prioriteta za bolje korisniฤko iskustvo.
Primjer:
const [isPending, startTransition] = useTransition(); startTransition(() => setFilteredList(filter(items, term)));
Ovdje tipkanje ostaje fluidno ฤak i pri filtriranju velikih skupova podataka jer React istovremeno zakazuje aลพuriranja koja nisu hitna.
24) Koji su razliฤiti naฤini testiranja u React aplikacijama?
Odgovor:
React testiranje se moลพe podijeliti na jedinica, integracijai kraj na kraj razinama.
Tablica metoda ispitivanja:
| Tip | Oruฤe | Svrha |
|---|---|---|
| Jedinica | ima | Testiranje izoliranih funkcija/komponenti |
| Integracija | Biblioteka za reakcijsko testiranje | Testiranje interakcija korisniฤkog suฤelja i promjena stanja |
| E2E | Cypress / Dramski pisac | Testiranje korisniฤkih tokova u stvarnim preglednicima |
Najbolje prakse:
- preferiraju Biblioteka za reakcijsko testiranje preko enzima (modernog, DOM-orijentiranog).
- Simuliranje API-ja pomoฤu
msw(Laลพni usluลพni radnik). - Izbjegavajte testiranje detalja implementacije - usredotoฤite se na ponaลกanje.
Primjer:
test('renders user name', () => {
render(<User name="Alice" />);
expect(screen.getByText(/Alice/)).toBeInTheDocument();
});
25) Koji se alati za izgradnju i paketi najฤeลกฤe koriste s Reactom i koje su njihove razlike?
Odgovor:
React se moลพe integrirati s nekoliko bundlera i kompajlera, od kojih je svaki optimiziran za razliฤite sluฤajeve upotrebe.
Usporedna tablica:
| Oruฤe | Karakteristike | Prednosti | Nedostaci |
|---|---|---|---|
| webpack | Visoko konfigurabilan | Zrelo, bogato dodacima | Sloลพena postavka |
| vijak | ESM-bazirani, munjevito brzi razvojni posluลพitelj | Instant HMR, moderna sintaksa | Ograniฤena podrลกka za starije dodatke |
| Parcela | Zero-config | Auto-optimizacija | Less fleksibilan |
| esbuild | Go kompajler | Izuzetno brzo | Manje dodataka ekosustava |
Primjer:
Moderni projekti ฤesto usvajaju vijak za brzinu razvoja i esbuild u CI/CD cjevovodima za uฤinkovite produkcijske izgradnje.
26) Kako Next.js proลกiruje Reactove moguฤnosti?
Odgovor:
Next.js je React framework pruลพajuฤi promiลกljenu arhitekturu za usmjeravanje, SSR i generiranje statiฤkih podataka. Uvodi hibridne modele renderiranja, API rute i znaฤajke implementacije spremne za rubne mreลพe.
Prednosti:
- Ugraฤen SSR/SSG/ISR Podrลกka.
- Usmjerivaฤ aplikacija s komponentama React Servera.
- Optimizacija slike i middleware za performanse i sigurnost.
- Jednostavne API rute za funkcije bez servera.
Primjer:
app/page.js za stranice prikazane SSR-om; app/api/route.js za krajnje toฤke posluลพitelja.
U saลพetkuNext.js omoguฤuje React aplikacije produkcijske razine s minimalnom konfiguracijom.
27) Koje su neke uobiฤajene zamke performansi u Reactu i kako ih moลพete izbjeฤi?
Odgovor:
Uobiฤajene zamke performansi Reacta ukljuฤuju:
- Nepotrebna ponovna renderiranja โ Popravak pomoฤu
React.memoili cijepanje komponenti. - Stvaranje inline objekta/niza - Koristiti
useMemoza stabilne reference. - Velike liste โ Implementirajte prozore (
react-window,react-virtualized). - Teลกki izraฤuni โ Memoiziraj ili prebaci web radnike.
- Prekomjerna upotreba konteksta โ ฤesta aลพuriranja se duboko ลกire; preferira se izvedeno stanje.
Primjer:
Ako proฤeลก { a: 1 } U liniji s memoiziranom komponentom, ona se ponovno renderira pri svakom roditeljskom renderiranju. Ispravite memoiziranjem objekta.
Tablica savjeta za performanse:
| Izdanje | Tehnika optimizacije |
|---|---|
| Ponovno renderira | React.memo, useCallback |
| Skupi izraฤuni | useMemo, Web radnici |
| Veliki skupovi podataka | Virtualizacija |
| ฤesta aลพuriranja konteksta | Lokaliziraj stanje |
28) Objasnite razliku izmeฤu useReducer i useState.
Odgovor:
Oba kuka upravljaju stanjem, ali se razlikuju po sloลพenosti i kontroli.
useStateidealan je za jednostavne, izolirane prijelaze stanja.useReducercentralizira sloลพenu logiku stanja u funkcija reduktora, Koriลกtenjedispatchradnje za predvidljiva aลพuriranja.
Usporedna tablica:
| Faktor | useState | useReductor |
|---|---|---|
| Sintaksa | [value, setValue] |
[state, dispatch] |
| Sloลพenost | Jednostavan | Umjereno do sloลพeno |
| Koristite sluฤaj | Neovisne drลพave | Povezana ili ugnijeลพฤena stanja |
| Otklanjanje greลกaka | Less glagolan | Lakลกe putem zabiljeลพenih radnji |
| Primjer | Prekidaฤi obrasca | Validacija obrasca ili obrasci u viลกe koraka |
Primjer:
const [state, dispatch] = useReducer(reducer, { count: 0 });
dispatch({ type: 'increment' });
29) Kako moลพete poboljลกati pristupaฤnost (a11y) u React aplikacijama?
Odgovor:
Pristupaฤnost osigurava da svi korisnici, ukljuฤujuฤi i one s invaliditetom, mogu uฤinkovito koristiti vaลกu aplikaciju. React olakลกava pristupnost putem semantiฤkog oznaฤavanja i ARIA atributa.
Najbolje prakse:
- Koristiti semantiฤki HTML (
<button>vs<div onClick>). - Upravljajte fokusom pomoฤu
refitabIndex. - Koristite ARIA uloge za dinamiฤke komponente.
- Osigurajte kontrast boja i alternativne tekstualne opcije za slike.
- Iskoristite alate poput eslint-plugin-jsx-a11y i sjekira-jezgra za revizije.
Primjer:
<button aria-label="Close dialog" onClick={closeModal}>ร</button>
Prednosti:
- ล iri doseg publike.
- Poboljลกanje SEO-a.
- Usklaฤenost sa WCAG standardima.
30) Moลพete li opisati kako se dijeljenje koda i lijeganje uฤitavanja razlikuju i kada ih koristiti?
Odgovor:
Obje tehnike optimiziraju veliฤinu snopa i performanse uฤitavanja, ali se razlikuju u vrijeme izvrลกenja.
- Razdvajanje koda dijeli velike pakete na manje dijelove koji se mogu uฤitati neovisno.
- Lijeno uฤitavanje odgaฤa uฤitavanje tih dijelova dok ne budu potrebni.
Usporedna tablica:
| Faktor | Podjela koda | Lazy Otvaram |
|---|---|---|
| Definicija | Dijeli kod na dijelove | Uฤitava dijelove na zahtjev |
| Oruฤe | Webpack, Vite | React.lazy, dinamiฤan import() |
| Svrha | Optimizirajte veliฤinu paketa | Poboljลกajte performanse za vrijeme izvoฤenja |
| Izvrลกenje | Vrijeme izgradnje | duลพina trajanja |
Primjer:
const Settings = React.lazy(() => import('./Settings'));
Koriลกtene zajedno, ove tehnike smanjuju vrijeme potrebno za interakciju i poboljลกavaju percipiranu brzinu velikih aplikacija.
31) Objasnite koncept Render Propsa i kako se razlikuje od Higher-Order Components (HOC).
Odgovor:
Render Props je obrazac u Reactu gdje komponenta prihvaฤa funkcionirati kao rekvizit koji mu govori ลกto treba prikazati. To omoguฤuje dijeljenje logike komponenti izmeฤu viลกe komponenti bez dupliciranja.
S druge strane, HOC-ovi omotati komponentu i vratiti poboljลกanu verziju s ubrizganim propsima ili ponaลกanjima.
Usporedna tablica:
| Faktor | Render Props | HOC |
|---|---|---|
| Izvrลกenje | Funkcionira kao dijete | Komponenta za omatanje funkcija |
| Sastav | Inline kontrola | Deklarativno prelamanje |
| ฤitljivost | ฤesto jasnije | Moลพe uzrokovati pakao od omotaฤa |
| Koristite sluฤaj | Logika dinamiฤkog renderiranja | Meฤusektorski problemi |
Primjer:
<DataProvider render={data => <UserList users={data} />} />
Render Props nude bolju fleksibilnost i izbjegavaju kolizije imena uobiฤajene u HOC-ovima.
32) Koje su razliฤite vrste prilagoฤenih kuka i njihove prednosti?
Odgovor:
Prilagoฤene kuke obuhvaฤaju logiku za viลกekratnu upotrebu koja kombinira stanje, nuspojave i usluลพne programe. Poboljลกavaju moguฤnost ponovne upotrebe koda, odvajanje problema i moguฤnost testiranja.
Vrste i primjeri:
- Kuke za upravljanje stanjem -
useToggle,useForm. - Kuke za dohvaฤanje podataka -
useFetch,useQuery. - UI/UX kuke -
useWindowSize,useDarkMode. - Integracijske kuke -
useLocalStorage,useMediaQuery. - Kuke za performanse -
useDebounce,useThrottle.
Prednosti:
- Centralizirana ponovna upotreba logike.
- ฤistije komponente.
- Neovisno testiranje.
Primjer:
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) Kako se nosite s curenjem memorije u React aplikacijama?
Odgovor:
Do curenja memorije dolazi kada nemontirane komponente joลก uvijek sadrลพe reference na resurse ili pretplate. To smanjuje performanse i uzrokuje nepredvidivo ponaลกanje.
Tehnike prevencije:
- Efekti ฤiลกฤenja in
useEffect: useEffect(() => { const id = setInterval(logData, 1000); return () => clearInterval(id); }, []); - Prekini asinhrone pozive koristeฤi
AbortController. - Izbjegavajte zadrลพavanje zastarjelih zatvaranja referenciranje starih rekvizita/stanja.
- Odjava s dogaฤaja ili utiฤnica pri demontiranju.
- Koristite React Profiler za otkrivanje sporog rasta pamฤenja.
Primjer:
U aplikaciji za chat uvijek iskljuฤite sluลกatelje utiฤnica kada korisnik napusti sobu za chat.
34) Koje su najbolje prakse za upravljanje obrascima u velikim React aplikacijama?
Odgovor:
Upravljanje obrascima u React aplikacijama na razini poduzeฤa zahtijeva ravnoteลพu izmeฤu kontrole, performansi i odrลพivosti.
Najbolje prakse:
- Koristite biblioteke poput Mravlja, React Hook obrazac, ili Konaฤni obrazac za validaciju i registraciju na terenu.
- Grupirajte povezana polja pomoฤu ugnijeลพฤenih komponenti ili konteksta.
- Korak po korak do prijave validacija sheme (Da, Zod) zbog dosljednosti.
- Uklonite teลกke validacije ili API provjere.
- Odrลพavajte stanje obrasca lokaliziranim osim ako nije potrebno globalno.
Primjer:
React Hook Form minimizira ponovno renderiranje izoliranjem stanja ulaza.
const { register, handleSubmit } = useForm();
<input {...register('email', { required: true })} />
35) Koji su obrasci dizajna najkorisniji u React razvoju i koje su njihove karakteristike?
Odgovor:
React se prirodno uklapa u nekoliko obrazaca dizajna softvera za odrลพivu i skalabilnu arhitekturu korisniฤkog suฤelja.
| Uzorak | Description | Primjer |
|---|---|---|
| Kontejner-prezenter | Odvojena logika (spremnik) od korisniฤkog suฤelja (prezenter) | SpremnikPodataka โ UIComponent |
| Kontrolirano-nekontrolirano | Upravljanje podacima obrasca putem stanja u odnosu na DOM | Formik u odnosu na sirove ulaze |
| Sloลพene komponente | Roditeljski nadzor nad sastavom djeteta | <Tabs><Tab /></Tabs> |
| Uzorak pruลพatelja usluga | Dijeli stanje putem konteksta | Pruลพatelj tema |
| Uzorak kuka | Ponovno upotrijebite logiku stanja | useAuth, useFetch |
Primjer:
A Tabs komponenta otkriva kontekst tako da <Tab> djeca se automatski registriraju - ฤista primjena Sloลพena komponenta uzorak.
36) Koje su kljuฤne razlike izmeฤu Reacta 18 i Reacta 19?
Odgovor:
React 19 se nadovezuje na istovremene temelje Reacta 18 sa znaฤajnim novim moguฤnostima.
| svojstvo | Reagiraj 18 | Reagiraj 19 |
|---|---|---|
| Istovremeno renderiranje | Predstavljen | Poboljลกano s boljim suspensom |
| Komponente posluลพitelja | Eksperimentalan | Stabilizirano i integrirano |
| API za akcije | Nije dostupno | Novi standard za rukovanje akcijama na obrascima |
| Uฤitavanje imovine | Priruฤnik | Automatsko uฤitavanje resursa |
| Poboljลกano rukovanje greลกkama | osnovni | Granulirano s graniฤnim kukama |
Kljuฤne prednosti:
React 19 se fokusira na jednostavnije mutacije podataka, ugraฤene akcije obrascai poboljลกana kontrola asinkronosti, ลกto SSR i progresivnu hidrataciju ฤini besprijekornijima.
37) Kako funkcionira mikrofrontend ArchiIntegrira li se tekstura s Reactom i koje su njezine prednosti?
Odgovor:
Mikro-frontendovi dijele veliku web aplikaciju na neovisne, implementabilne front-end module. U React ekosustavu, svaki mikro-frontend je samostalna aplikacija koja se moลพe integrirati putem Federacija modula, iframeovi, ili prilagoฤeni uฤitavaฤi za vrijeme izvoฤenja.
Prednosti:
- Neovisno postavljanje i skaliranje.
- Autonomija tima u razliฤitim tehnoloลกkim slojevima.
- Brลพa izgradnja cjevovoda.
Primjer:
Koriลกtenje Webpack Module Federation, timovi mogu dinamiฤki izloลพiti React komponente u aplikacijama:
exposes: { './NavBar': './src/NavBar' }
Nedostaci:
- Sloลพenost upravljanja dijeljenim stanjem.
- Optereฤenje performansi zbog izoliranih paketa.
38) Koje faktore uzimate u obzir za skaliranje React aplikacije u produkciji?
Odgovor:
Skaliranje React aplikacija ukljuฤuje tehniฤka, arhitektonska i operativna razmatranja.
Kljuฤni ฤimbenici:
- Struktura koda โ usvojiti monorepozitorije (Nx/Turborepo) za modularno dijeljenje koda.
- Upravljanje drลพavom โ segmentiranje lokalnih vs. globalnih vs. stanja posluลพitelja.
- Izvoฤenje โ lijeno uฤitavanje, memoizacija, CDN keลกiranje.
- Praฤenje โ koristite Sentry, Datadog ili LogRocket za pogreลกke i metrike.
- Testiranje i CI/CD โ automatizirani cjevovodi i vizualni regresijski testovi.
Primjer:
Velika platforma za e-trgovinu skalira React aplikacije koristeฤi Next.js za SSR, Redux Toolkit za predvidljivo stanje i mikro-frontendove za izolirane vertikale.
39) Kako testirate React komponente koje koriste asinhrono ponaลกanje?
Odgovor:
Testiranje asinkronih React komponenti zahtijeva sinkronizaciju izmeฤu pokretaฤa testa i aลพuriranja stanja komponente.
Najbolje prakse:
- Koristiti
waitFororfindBy*upiti u biblioteci za testiranje Reacta. - Simulirajte pozive za dohvaฤanje ili API-je pomoฤu
msw. - preferiraju laลพni tajmeri (
jest.useFakeTimers()) za efekte temeljene na isteku vremena.
Primjer:
test('loads and displays data', async () => {
render(<UserList />);
expect(await screen.findByText('Alice')).toBeInTheDocument();
});
To osigurava da test ฤeka Reactova asinkrona aลพuriranja prije nego ลกto izvrลกi tvrdnje.
40) Objasnite kako biste dizajnirali strukturu React projekta velikih razmjera koja se lako odrลพava.
Odgovor:
Skalabilni React projekt mora uravnoteลพiti modularnost, jasnoฤu i timsku suradnju.
Preporuฤena struktura mapa:
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
Najbolje prakse:
- Koristite apsolutni uvoz s pseudonimima puta.
- Odrลพavajte strogo stvaranje dlaฤica (ESLint + Prettier).
- Koristiti TypeScript za sigurnost tipova.
- Nametnite granice komponenti atomskim dizajnom ili rezanjem na temelju znaฤajki.
Primjer:
U stvarnom okruลพenju, znaฤajka "Korisnik" moลพe ukljuฤivati UserSlice.js, UserAPI.js, UserCard.jsxi User.test.js, sve unutar src/features/user/.
๐ Najpopularnija pitanja za intervju za React.js sa stvarnim scenarijima i strateลกkim odgovorima
1) Koje su kljuฤne razlike izmeฤu funkcionalnih i klasnih komponenti u React.js-u?
Oฤekivano od kandidata: Anketar ลพeli provjeriti vaลกe razumijevanje arhitekture React komponenti i modernih najboljih praksi.
Primjer odgovora:
โFunkcionalne komponente su jednostavnije i oslanjaju se na hooks za upravljanje stanjem i metodama ลพivotnog ciklusa, dok komponente klase koriste this i metode ลพivotnog ciklusa poput componentDidMountFunkcionalne komponente su danas opฤenito poลพeljnije jer potiฤu ฤiลกฤi kod, lakลกe ih je testirati i bolje rade zbog optimizacija u Reactovom procesu renderiranja.
2) Moลพete li objasniti kako virtualni DOM radi u Reactu?
Oฤekivano od kandidata: Anketar ลพeli procijeniti vaลกe razumijevanje Reactovog kljuฤnog mehanizma performansi.
Primjer odgovora:
โVirtualni DOM je memorijski prikaz stvarnog DOM-a. Kada se stanje komponente promijeni, React prvo aลพurira virtualni DOM, usporeฤuje ga s prethodnom verzijom pomoฤu procesa koji se naziva 'diffing', a zatim aลพurira samo dijelove stvarnog DOM-a koji su se promijenili. Ovaj pristup poboljลกava performanse minimiziranjem izravne manipulacije DOM-om.โ
3) Kako upravljate stanjem u velikoj React aplikaciji?
Oฤekivano od kandidata: Anketar ลพeli znati o vaลกem iskustvu s tehnikama i alatima za upravljanje drลพavom.
Primjer odgovora:
โU velikim aplikacijama obiฤno koristim centralizirane biblioteke za upravljanje stanjem kao ลกto su Redux ili Zustand. Redux pruลพa predvidljiv tok podataka i olakลกava ispravljanje pogreลกaka putem alata za ispravljanje pogreลกaka tijekom putovanja vremenom. Za jednostavnije aplikacije preferiram koriลกtenje Context API-ja i hookova kako bih izbjegao nepotrebnu sloลพenost.โ
4) Opiลกite situaciju kada ste optimizirali performanse Reacta.
Oฤekivano od kandidata: Anketar ลพeli razumjeti vaลกe praktiฤno iskustvo s optimizacijom uฤinka.
Primjer odgovora:
โU mojoj prethodnoj ulozi, naลกa se aplikacija pretjerano ponovno prikazivala zbog nepotrebnih promjena stanja. Koristio sam React.memo i useCallback kuku kako bi se sprijeฤilo nepotrebno ponovno renderiranje. Takoฤer sam analizirao performanse pomoฤu React Profilera i identificirao komponente kojima je potrebna memorizacija, ลกto je smanjilo vrijeme renderiranja za gotovo 30%.
5) Kako se nosite s nuspojavama u Reactu?
Oฤekivano od kandidata: Anketar ลพeli procijeniti vaลกe razumijevanje kukica i upravljanja ลพivotnim ciklusom.
Primjer odgovora:
โRjeลกavam nuspojave poput API poziva ili DOM manipulacija pomoฤu useEffect kuka. Kuka mi omoguฤuje odreฤivanje ovisnosti, osiguravajuฤi da se efekt pokreฤe samo kada se te ovisnosti promijene. To pomaลพe u odrลพavanju predvidljivog ponaลกanja i izbjegavanju beskonaฤnih petlji.
6) Recite mi o izazovnom bugu s kojim ste se susreli u React projektu i kako ste ga rijeลกili.
Oฤekivano od kandidata: Ispitivaฤ ลพeli procijeniti vaลกe vjeลกtine rjeลกavanja problema i otklanjanja pogreลกaka.
Primjer odgovora:
โNa prethodnoj poziciji naiลกao sam na greลกku gdje se aลพuriranja stanja nisu odraลพavala u korisniฤkom suฤelju. Nakon istraลพivanja shvatio sam da je problem uzrokovan izravnom mutacijom objekta stanja umjesto stvaranja nove kopije. Refaktorirao sam kod kako bi koristio nepromjenjiva aลพuriranja, ลกto je rijeลกilo problem i poboljลกalo konzistentnost podataka.โ
7) Kako se rjeลกava validacija obrazaca u React aplikacijama?
Oฤekivano od kandidata: Anketar ลพeli vidjeti razumijete li kako implementirati validaciju korisniฤkog unosa.
Primjer odgovora:
โObiฤno koristim kontrolirane komponente za upravljanje unosima u obrasce, u kombinaciji s bibliotekama poput Formika ili React Hook Forma za validaciju. Ovi alati pojednostavljuju rukovanje pogreลกkama, upravljanje stanjem obrasca i integraciju s bibliotekama za validaciju treฤih strana kao ลกto je Yup.โ
8) Opiลกite situaciju u kojoj ste morali suraฤivati โโs backend developerima dok ste radili na React projektu.
Oฤekivano od kandidata: Anketar ลพeli procijeniti vaลกe timske i komunikacijske vjeลกtine.
Primjer odgovora:
โU svojoj posljednjoj ulozi, blisko sam suraฤivao s backend programerima kako bih dizajnirao REST API-je za aplikaciju za nadzorne ploฤe. Dogovorili smo se o formatima podataka i krajnjim toฤkama tijekom ranih faza razvoja. Takoฤer sam kreirao probne odgovore kako bih nastavio razvoj front-enda dok se backend gradio, osiguravajuฤi nesmetanu integraciju kasnije.โ
9) Kako osiguravate da se vaลกe React komponente mogu ponovno koristiti i odrลพavati?
Oฤekivano od kandidata: Anketar ลพeli znati viลกe o vaลกem pristupu dizajnu komponenti i skalabilnosti.
Primjer odgovora:
โSlijedim princip izgradnje malih, fokusiranih komponenti koje obavljaju jednu odgovornost. Takoฤer koristim props-ove za fleksibilnost i modularno stiliziram s CSS-in-JS-om ili styled-components. To osigurava da se komponente mogu lako ponovno koristiti i odrลพavati tijekom cijelog projekta.โ
10) Kako pratite trendove i najbolje prakse React.js-a?
Oฤekivano od kandidata: Anketar ลพeli procijeniti vaลกu predanost kontinuiranom uฤenju.
Primjer odgovora:
โPratim sluลพbenu dokumentaciju Reacta i blogove zajednice te pratim novosti. Takoฤer pratim predavanja s React konferencija poput React Confa i sluลกam podcaste poput 'React Podcasta'. Ovi resursi mi pomaลพu da ostanem informiran o novim znaฤajkama kao ลกto su istovremeno renderiranje i Server Components.โ
