Frontend
Existujú otázky o projekte, tíme alebo procesoch vývoja?
Je `console.log` vo vnútri funkcie vedľajším efektom?
Povedz mi stručne o sebe, čím sa zaoberáš, odkiaľ si, prečo si tu a všetko, čo považuješ za dôležité.
Aký je rozdiel medzi useMemo a useCallback?
Povedz mi niečo o sebe a o najzaujímavejšej technickej úlohe, ktorú si riešil, podľa svojho názoru.
Ako ste komunikovali s backendom in drugimi člani ekipe (analitiki, oblikovalci, testeri)?
Prosím, povedz mi o promises v JavaScripte: čo sú, na čo slúžia, metódy.
Aké vzory vývoja používate (DRY, SOLID, GRASP, návrhové vzory)?
Čo je to pole závislostí v useEffect? Čo sa stane, ak odovzdáte prázdne pole alebo ho vôbec ne odovzdáte?
Aké HTTP kódy sa používajú pri práci s REST API?
/* Čo sa zobrazí v konzole */ let value = 2; function showValue() { console.log(value); } function wrapper() { let value = 3; console.log(value); showValue(); } wrapper();
Čo ste robili, keď používateľ stratil internetové pripojenie?
Ako zorganizovať výmenu dát medzi dvoma nesúvisiacimi komponentami?
Ako úzko ste pracovali s Next.js? Aké funkcie používate?
Ešte stále pracujete v spoločnosti alebo ste ju už opustili?
Ako implementovať vyhľadávanie podľa valueChanges poľa s požiadavkou na backend: ktoré RxJS operátory použiť a prečo?
Na čo je potrebný správca stavu? Čím sa líši od React Context?
Čo je to Temporálna mŕtva zóna (TDZ)? Prečo sa objavuje a ako s tým bojovať?
import React, { useState, useEffect, useRef, useContext, useReducer, useMemo } from 'react'; const someFunc = (arr) => { return [...arr].sort((a, b) => a - b); }; const LazyInit = (props) => { const [arr, setArr] = useState(() => someFunc(props.arr)); const onClick = () => { setArr((prev) => prev.concat(prev.length + 1)) } return ( <> <button onClick={onClick}> Zvýšiť </button> <ul> {arr.map((n, index) => <li key={index}>{n}</li>)} </ul> </> ) } export default () => <LazyInit arr={[1, 2, 3]} />; --- Diskusia na pravej strane sa zaoberá: - Používaním TypeScriptu s generikami: "<T extends object, K extends keyof T>" - Kontrolou, či sú údaje reťazec, pomocou typu strážca: "isString(data: unknown): data is string { ... }" - Používaním useState s funkciou, aby sa zabránilo opakovaniu pri každom renderovaní: ``` const [state, setState] = useState(getComplexData); // alebo const [state, setState] = useState(() => getComplexData()); ``` - Funkcia odovzdaná do useState sa vykoná iba raz pri načítaní komponentu. - Upozornenie na priame mutovanie stavu na riadku 11 s prev.concat. --- Technická úloha je analyzovať a prípadne opraviť alebo optimalizovať kód React komponentu, pričom sa zameriava na: - Správnu lazy inicializáciu stavu pomocou useState. - Vyhnúť sa priamej mutácii stavu. - Pochopenie generík TypeScriptu a typových strážcov. - Zabezpečiť, aby komponent správne aktualizoval stav pri kliknutí na tlačidlo.
Povedz mi o svojej najobľúbenejšej funkcii, na ktorú si hrdý