Frontend
Zašto je potreban menadžer stanja? Čime se razlikuje od React Context?
Čime se razlikuju call, apply i bind?
Šta server vraća pretraživaču nakon zahteva, uključujući i samu stranicu?
Danas ćemo projektovati messenger. Upoznajte se sa maketom interfejsa i funkcionalnim zahtevima. Potrebno je prikupiti nefunkcionalne zahteve, diskutovati o tehnološkom skupu, komponentama i servisima frontenda, modelima podataka, API-jevima i opštoj sistemskoj arhitekturi.
Zašto služi ključna reč satisfies u TypeScript-u?
У прототипу продајне мреже за рекламе, продаја рекламних места организована је на следећи начин: купци унапред наведе своју цену, а за свако рекламно место одговарају да ли су спремни да га купе или не. Потребно је имплементирати функцију која, пре продаје рекламног места, чека сагласност или одбијање купаца са највишом понудом, а затим продаје рекламно место купцу са највишом понудом међу онима који су дали сагласност. Одговор функције треба да буде што брже могуће. Треба вратити индекс купца. Примери: Купци нуде цене 1, 5, 10 Купац са понудом 10 одговорио је одбијањем Купац са понудом 1 одговорио је сагласношћу // Још увек чекамо, јер може одговорити купац са понудом 5 Купац са понудом 5 одговорио је сагласношћу // Изабраћемо купца са понудом 5 ------------ Купци нуде цене 1, 5, 10 Купац са понудом 10 одговорио је одбијањем Купац са понудом 5 одговорио је сагласношћу // Не чекамо одговор од купца са понудом 1 - он сигурно неће бити изабран ------------ Купци нуде цене 1, 2 Купац са понудом 1 одговорио је одбијањем Купац са понудом 2 одговорио је одбијањем // Не изабира се ниједан купац type Buyer = { price: number, accepts: () => Promise<boolean>, } async function bestBuyer(buyers) { const sorted = buyers.map((buyer, index) => ({buyer, index})) .sort((a, b) => a.buyer.price - b.buyer.price); const promise = sorted.map(({buyer}) => buyer.accepts()); for (let i = 0; i < sorted.length; i++) { const accepted = await promise[i]; if (accepted) { return sorted[i].index; } } if (await buyers[0].accepts()) { return 0; } return -1; }
Po kojim principima radi NGRX? Od čega se sastoji i kako funkcioniše ceo ovaj mehanizam?
Kada se pozivaju useEffect i useLayoutEffect?
Koja je razlika između interfejsa i tipa u TypeScript-u?
Šta učiniti za optimizaciju performansi React aplikacije (Web Vitals)?
// Promise.resolve() // .then(() => console.log(1)) // // .then(() => console.log(2)) // // Promise.resolve() // .then(() => console.log(11)) // // .then(() => console.log(22)) //
Реците ми о сигналима у Angular-у.
Kako je uopšte organizovan timski rad, kako su zadaci dodeljivani i raspoređivani, i po kom principu se radilo?
Zašto nisi više pisao komentare u pull-req-ovima? Da li obično tako pišeš dečkima u zahtevima?
Da li je moguće prisilno pokrenuti sakupljač smeća u JavaScriptu?
Rad sa RTK Query: koji problem može nastati nakon uređivanja entiteta i povratka na ranije učitanu listu entiteta?
Чиме се разликује виртуелни DOM од обичног DOM-а?
Kako osigurati podršku za moderne formate slika (WebP, AVIF) u pregledačima koji ih ne podržavaju?
setTimeout(function timeout() { console.log('Време'); }, 0); let p = new Promise(function(resolve, reject) { console.log('Креирање обећања'); resolve(); }); p.then(function(){ console.log('Обрада обећања'); }); console.log('Крај скрипте'); // Компликован случај // console.log(1); // setTimeout(() => console.log(2)); // Promise.resolve().then(() => console.log(3)); // Promise.resolve().then(() => setTimeout(() => console.log(4))); // Promise.resolve().then(() => console.log(5)); // setTimeout(() => console.log(6));
Implementirajte funkciju smartFetch, koja je omotač oko funkcije batchFetch za zahteve podataka sa backend-a po ID. Funkcija treba da akumulira pozive tokom vremenskog okna (timeout) i da ih šalje jednim batch zahtevom. Čekanje na sledeće okno počinje odmah nakon slanja zahteva. ID-ovi su jedinstveni, fetch je uvek uspešan. Potrebno je pravilno obraditi slučaj kada u okviru jednog okna stignu duplikatni ID-ovi.