Proveďte revizi React komponenty a opravte problémy v kódu. Vysvětlete, proč v každém případě provádíte změny.
Frontend
Pro hodnoty const a = null a const b = 0 určete výsledky výrazů s || a ?? a vysvětlete rozdíl mezi operátory.
Jaký je rozdíl mezi unknown a any v TypeScriptu?
Pro výraz s operátorem || určete výsledek. Čím se liší operátor || od operátoru ?? a kdy se ?? spouští?
Měli jste monorepozitář nebo samostatné repozitáře pro aplikace a sdílené knihovny?
Jak zabránit závodním podmínkám při opakovaných asynchronních požadavcích z useEffect? Jaké nativní nástroje JavaScriptu umožňují zrušení požadavků?
Pro funkci sčítadla s uzávěrem, kde je zpráva vytvořena před voláním inkrementace, určete, co bude vypsáno. Jak opravit kód, aby se zobrazila aktuální hodnota čítače?
Je zde potřeba useCallback? K čemu se používá a kdy nedává smysl ho používat?
Jak byste organizovali izolaci stylů pro každý mikro-frontend, včetně použití Tailwind CSS? Jaké existují přístupy pro izolaci v prohlížeči?
Pokud každý mikrofrontend přidává globální základní styly Tailwind CSS a ty se duplikují, měl jste takový problém?
Povězte nám, jak byly vaše mikro-frontendy organizovány, jejich interakce a celková funkce systému.
Ve druhé části kódu React najděte a opravte problémy s useEffect, useMemo, asynchronním načítáním uživatelů/rolí a ukládáním vypočítaných dat do stavu.
Implementujte svůj vlastní užitečný typ Pick<T, K>. Vysvětlete, jak fungují mapované typy a jak implementovat ekvivalent Partial<T>.
Pokud je objekt vytvořen pomocí Object.create([objekt]), na co bude ukazovat jeho __proto__?
Pokud jsou role ve výchozím nastavení nastaveny jako prázdné pole přímo v parametrech komponenty, co se stane s useEffect při každém renderu? Jak to opravit?
Jak se liší display: none od opacity: 0 z hlediska renderovacího stromu, rozvržení a zabraného místa? Která varianta je výkonnější a proč?
Proč byste měli používat stav místo obyčejné proměnné pro hodnotu, která ovlivňuje zobrazení komponenty?
Vyřešte problém TypeScript: existuje typ Response s vzájemně vylučujícími poli payload a error, a jejich typy se mohou lišit. Musíte typovat funkce payloadFrom(response), která vrací payload nebo undefined, a errorFrom(response), která vrací error nebo undefined, tak aby byly návratové typy automaticky odvozeny z vstupního Response.
Pro objekt s šipkovou funkcí, která vypisuje this.name, určete, co bude vypsáno, a vysvětlete chování this v šipkové funkci.
Co dělá useMemo a jaké jsou důsledky jeho použití pro všechny hodnoty zbytečně?