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.

Pitanja i odgovori za intervju za React JS

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:

  1. Prezentacijske (glupe) komponente โ€“ Fokus na korisniฤko suฤelje, primanje podataka putem propsova i rijetko upravljanje stanjem.
  2. Komponente kontejnera (pametne) โ€“ Obraฤ‘uju logiku, dohvaฤ‡aju podatke i upravljaju stanjem; prikazuju prezentacijske komponente.
  3. Komponente viลกeg reda (HOC) โ€“ Funkcije koje uzimaju komponentu i vraฤ‡aju poboljลกanu verziju s dodatnim ponaลกanjem.
  4. ฤŒiste komponente โ€“ Optimizirajte performanse plitkom usporedbom propsa i stanja.
  5. 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:

  1. useEffect za efekte na strani klijenta nakon renderiranja.
  2. Voditelji dogaฤ‘aja za efekte koje pokreฤ‡u korisnici.
  3. Kuke po narudลพbi ponovno upotrijebiti logiku efekata (na primjer useFetch).
  4. middleware (poput Redux Sage ili Thunka) za sloลพenu asinkronu orkestraciju.
  5. 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:

  1. Nepotrebna ponovna renderiranja โ€” Popravak pomoฤ‡u React.memo ili cijepanje komponenti.
  2. Stvaranje inline objekta/niza - Koristiti useMemo za stabilne reference.
  3. Velike liste โ€” Implementirajte prozore (react-window, react-virtualized).
  4. Teลกki izraฤuni โ€” Memoiziraj ili prebaci web radnike.
  5. 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.

  • useState idealan je za jednostavne, izolirane prijelaze stanja.
  • useReducer centralizira sloลพenu logiku stanja u funkcija reduktora, Koriลกtenje dispatch radnje 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 ref i tabIndex.
  • 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:

  1. Kuke za upravljanje stanjem - useToggle, useForm.
  2. Kuke za dohvaฤ‡anje podataka - useFetch, useQuery.
  3. UI/UX kuke - useWindowSize, useDarkMode.
  4. Integracijske kuke - useLocalStorage, useMediaQuery.
  5. 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:

  1. Efekti ฤiลกฤ‡enja in useEffect: useEffect(() => { const id = setInterval(logData, 1000); return () => clearInterval(id); }, []);
  2. Prekini asinhrone pozive koristeฤ‡i AbortController.
  3. Izbjegavajte zadrลพavanje zastarjelih zatvaranja referenciranje starih rekvizita/stanja.
  4. Odjava s dogaฤ‘aja ili utiฤnica pri demontiranju.
  5. 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:

  1. Struktura koda โ€” usvojiti monorepozitorije (Nx/Turborepo) za modularno dijeljenje koda.
  2. Upravljanje drลพavom โ€” segmentiranje lokalnih vs. globalnih vs. stanja posluลพitelja.
  3. Izvoฤ‘enje โ€” lijeno uฤitavanje, memoizacija, CDN keลกiranje.
  4. Praฤ‡enje โ€” koristite Sentry, Datadog ili LogRocket za pogreลกke i metrike.
  5. 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 waitFor or findBy* 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.โ€œ

Saลพmite ovu objavu uz: